Ver Mensaje Individual
  #6 (permalink)  
Antiguo 04/05/2011, 04:17
tesitina
 
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 51
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Saber quién modifica datos en una tabla

Hola a todos,

al final he encontrado una forma mucho más fácil de hacerlo. Por un lado me creo una tabla donde voy a insertar la información que necesito del update que se realice sobre la tabla que deseo auditar. La tabla donde inserto esta información es la siguiente:

CREATE TABLE dbo.logTransacciones (
PK varchar(1000),
ValorOriginal varchar(1000),
ValorNuevo varchar(1000),
FechaTrn datetime,
Usuario varchar(128))
GO

A continuación me creo un trigger que me audite los update realizados sobre la tabla t_pedidos. El trigger es el siguiente:

ALTER TRIGGER dbo.TriggerUpdate ON dbo.t_pedidos FOR UPDATE
AS
SET NOCOUNT ON
INSERT INTO dbo.logTransacciones
(PK,ValorNuevo,ValorOriginal,FechaTrn, Usuario)
SELECT I.id,I.descripcion_anexo,D.descripcion_anexo, getdate(), system_user
FROM INSERTED I
INNER JOIN DELETED D ON
I.id = D.id
AND I.descripcion_anexo <> D.descripcion_anexo
GO

Como podéis comprobar, obtengo la primary key de la línea que se está actualizando, el valor antiguo y nuevo del campo que se está modificando, la fecha de actualización y el usuario que la realiza.Sólo me queda un pequeño detalle, ¿hay alguna forma de saber que aplicación está realizando la actualización o la conexión con la BD?Es que tengo varias aplicaciones que modifican la BD.

Muchas gracias