Ver Mensaje Individual
  #46 (permalink)  
Antiguo 07/09/2012, 07:25
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Incrementar un campo desde un trigger

aaa entonces tu tabla inserted tendria solamente

campo1 campo2
1 'a'

cada vez que se ejecuta cierto? no pues de esa manera nunca se podra obtener lo que necesitas, lo que necesitarias seria hacer una reconciliacion de datos contra la base de datos donde estas almacenando la informacion algo asi:

Código SQL:
Ver original
  1. INSERT INTO tabla VALUES (id,campo1,campo2)
  2. SELECT 0,campo1,campo2 FROM inserted
  3.  
  4. UPDATE tabla
  5. SET id=t1.id
  6. FROM
  7. (
  8. SELECT ROW_NUMBER() OVER (partition BY campo1 ORDER BY campo1) AS id, campo1 FROM tabla
  9. ) AS t1 WHERE t1.campo1=tabla.campo1

asi tendrias lo siguiente:

digamos insertas:

campo1 campo2
1 'g'

y ya tienes en tu tabla
campo1 campo2
1 'a'
1 'b'
1 'c'
2 'd'
2 'e'

entonces quedaria

id campo1 campo2
1 1 'a'
2 1 'b'
3 1 'c'
1 2 'd'
2 2 'e'
0 1 'g'

y hacemos el update

y nos queda lo que buscas

id campo1 campo2
1 1 'a'
2 1 'b'
3 1 'c'
4 1 'g'
1 2 'd'
2 2 'e'


:)

saludos!

P.D: Casi no uso el msn, mejor mandame un email a mi cuenta :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me