Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/06/2011, 08:40
Avatar de zadkiel88
zadkiel88
 
Fecha de Ingreso: mayo-2011
Mensajes: 14
Antigüedad: 13 años
Puntos: 1
Exclamación Tabla de auditoria SQl server 2005

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.