Amigos Tengo el siguiente desencadenador para las actualizaciones
CREATE TRIGGER UP_EvTrabajadores ON EvTrabajadores
FOR UPDATE
AS
begin
Declare @Tabla varchar(30)
Declare @Campo varchar(30)
Declare @novedad varchar(30)
Declare @Valor_Anterior varchar(255)
Declare @Valor_Nuevo varchar(255)
declare @llave char(50)
Select @Tabla = 'EvTrabajadores'
Select @novedad = 'ACTUALIZA'
If Update(id_Trabajador)
Begin
select @llave=id_Trabajador FROM deleted
set @Campo = 'id_trabajador'
Select @Valor_Anterior = id_Trabajador
From Deleted
Select @Valor_Nuevo = id_Trabajador
From inserted
if (@Valor_Anterior <> @Valor_Nuevo)
insert into
EvAuditoria(tabla,Llave,campo,vant,vact,usuario,fechahora,novedad)
values(@tabla,
@llave,@campo,@Valor_Anterior,@Valor_Nuevo,CURRENT_USER,getdate(),@novedad)
End
If Update(descripcion)
Begin
select @llave=id_centro FROM deleted
set @Campo ='descripcion'
Select @Valor_Anterior = descripcion
From Deleted
Select @Valor_Nuevo = descripcion
From inserted
if (@Valor_Anterior <> @Valor_Nuevo)
insert into
EvAuditoria(tabla,Llave,campo,vant,vact,usuario,fechahora,novedad)
values(@tabla,
@llave,@campo,@Valor_Anterior,@Valor_Nuevo,CURRENT_USER,getdate(),@novedad)
End
end
como observan para cada cambio en un campo me guarda una bitacora, pero me
pueden ayudar en como hacer para que automaticamente recorra todos los
campos de la tabla y no tenga que escribir uno a uno?
Muchas Gracias
Leer las respuestas