El siguiente trigger permite auditar los cambios (Inserciones, Actualizaciones y eliminaciones) a una tabla. Es un trigger genérico. Es decir, el mismo trigger funciona para cualquier tabla de la base de datos. Hay que tener en cuenta solo tres cosas:
- Se debe crear una tabla de log para almacenar la información de auditoría.
- En el script hay que cambiar manualmente el nombre de la tabla sobre la cual se esta creando el trigger.
- Solo funciona con tablas que tienen llave primaria.
Este trigger fue diseñado por Nigel Rivett y funciona con las versiones 2005 en adelante. He hecho cambios mínimos de forma y he traducido e incluido comentarios para hacer mas legible y entendible el script.
Lo primero que hay que hacer es crear la tabla de auditoría, sobre la cual el trigger escribirá el detalle de las transacciones realizadas:
CREATETABLEdbo.logTransacciones(
TipoTrnchar(1),
Tablavarchar(128),
PKvarchar(1000),
Campovarchar(128),
ValorOriginalvarchar(1000),
ValorNuevovarchar(1000),
FechaTrndatetime,
Usuariovarchar(128))
GO
.
En esta tabla se almacena el tipo de transacción(I-Insert, U-Update, D-Delete), el nombre de la tabla, la llave del registro, el o los campos que han sufrido algún cambio, el valor original y el valor nuevo para las actualizaciones y por ultimo la fecha en la que se hizo el cambio y el usuario que lo ejecutó. Cualquier cambio realizado en cualquier tabla de la base de datos que tenga el trigger, será almacenado aquí
Vamos ahora a crear la tabla Cliente, que nos servirá para […]