Buen día.
agradecería su ayuda, mi duda es la siguiente:
estoy trabajando con sql server 2005, y necesito hacer tabla de auditoria y me surge el siguiente problema:
tengo la tabla usuarios y la tabla de auditoria es AUDIT.
1. creo el trigger en sql server:
CREATE TRIGGER AUDITupdc ON dbo.usuarios
INSTEAD OF UPDATE
AS
declare
@id int,
@usua varchar(50),
@inse varchar(50),
@fech datetime,
@regi varchar(50),
@sist varchar(50),
@host varchar(50),
@app varchar(50),
@usua2 varchar(50)
IF UPDATE(descripcion)
BEGIN
select
@inse = 'Edit',
@fech = getdate(),
@regi = 'Edicion de registro',
@sist = SYSTEM_USER,
@host = host_name(),
@app = APP_NAME(),
@id = Cli.cedula,
@usua = Cli.descripcion,
@usua2 = Ins.descripcion
From inserted Cli INNER JOIN usuarios Ins ON Ins.cedula = Cli.cedula
WHERE
EXISTS(SELECT
cedula,
descripcion
FROM dbo.usuarios Ins
WHERE Ins.cedula = Cli.cedula)
insert into AUDIT
VALUES (@inse,@fech,@regi,@sist,@host,@app,@id,@usua,@usu a2)
UPDATE dbo.usuarios SET descripcion = @usua WHERE cedula = @id
2. UPDATE dbo.usuarios SET descripcion = 'usuario1' WHERE cedula = '102447654' , este es el update que reazlizo.
- el trigger funciona y me envia la informacion a la tabla de auditoria, pero como pueden en ver en la ultima linea del punto uno(1.)tengo q especificar de nuevo el update ya que cuando realizo el update (2.) no me modifica la tabla, solo envia la informacion a la tabla de auditoria pero no modifica, me vi en la necesidad de colocar el update en el trigger.
la pregunta es: es necesario colocar el update en el trigger, o por que razón no edita cuando envió el update una vez.
gracias.