Ayuda con triggers

31/10/2009 - 18:56 por kojikabutosv | Informe spam
Buenas tardes, es primera vez que comienzo a trabajr con Triggers y
averiguando logré crear uno, he creado un nuevo campo de tipo fecha que
necesito se actualice con getdate() en cada update pero cuando realizo
un update a la tabla, la actualización se hace sobre todos los
registros, como hago para decirle al trigger que me actualice solamente
el campo que recibió la modificación? o estoy utilizando mal el concepto
de los triggers??


el trigger lo he creado de la siguiente manera:

ALTER TRIGGER [dbo].[TR_ActualizaFecha]
ON [dbo].[Anex_Control]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;

update anex_control set ult_fecha_actualiz = getdate()
END


gracias por su ayuda y comentarios.
 

Leer las respuestas

#1 Alejandro Mesa
31/10/2009 - 19:43 | Informe spam
Dentro de los triggers "AFTER", tienes acceso a dos tablas virtuales
"deleted" e "inserted" donde puedes ver las filas a las que se actualizo.

Si tu tabla tiene una clave primaria entonces puedes unir tu tabla con la
tabla "inserted" para tener acceso solo a las filas que se actualizaron.

update A
set A.ult_fecha_actualiz = getdate()
from anex_control as A inner join inserted as I on A.pk = I.pk;


AMB


"kojikabutosv" wrote:

Buenas tardes, es primera vez que comienzo a trabajr con Triggers y
averiguando logré crear uno, he creado un nuevo campo de tipo fecha que
necesito se actualice con getdate() en cada update pero cuando realizo
un update a la tabla, la actualización se hace sobre todos los
registros, como hago para decirle al trigger que me actualice solamente
el campo que recibió la modificación? o estoy utilizando mal el concepto
de los triggers??


el trigger lo he creado de la siguiente manera:

ALTER TRIGGER [dbo].[TR_ActualizaFecha]
ON [dbo].[Anex_Control]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;

update anex_control set ult_fecha_actualiz = getdate()
END


gracias por su ayuda y comentarios.
.

Preguntas similares