Triggers After

Cuando hablamos de TRIGGERS siempre se origina una pregunta ¿Qué son y para qué sirven?

Los TRIGGERS o “disparadores” son muy parecidos a los STORE PROCEDURES pero éstos están más enfocados a trabajar con las tablas cuando ocurre alguna acción que amerite que sean llamados, por ejemplo: cuando se hace un INSERT, UPDATE o DELETE, el TRIGGER se dispara para realizar alguna acción establecida dentro de su código.

Por ejemplo: podríamos tener un TRIGGER que se active cada vez que un usuario agrega un dato dentro de una tabla, y deseamos que esa información (la que el usuario X ingresó datos en Y tabla) sea almacenada en otra tabla para hacer alguna auditoría.

Veamos un ejemplo:

Hemos creado dos tablas; la tabla empleados y la tabla auditoria. En la tabla empleados se almacenan los id’s de cada empleado así como sus nombres y el departamento en el que trabajan. Por otro lado, tenemos la tabla auditoria en la cual registraremos todas las acciones que se hagan dentro de la tabla empleados.

Posteriormente hemos creado un TRIGGER para que sea llamado cada vez que un usuario ingresa un nuevo empleado a la tabla empleado y esa acción quede registrada dentro de la tabla de auditorias.

CREATE TRIGGER tr_empleados_insert
ON empleados
AFTER INSERT
AS
INSERT INTO auditoria(fecha, descripcion, usuario)
VALUES(getdate(), 'Nuevo empleado ingresado', user);
GO

Revisemos el código para poder comprenderlo mejor;

Línea 1: indicamos que se creará un TRIGGER y le asignamos un nombre, se recomienda que el nombre siempre sea del tipo tr_nombreDeLaTabla_AccionQueRealizará

Línea 2: establecemos en qué tabla se implementará el TRIGGER, que para este ejemplo estamos utilizando la tabla empleados.

Línea 3: AFTER INSERT, especifica que la acción ocurre después de que se haya efectuado un INSERT, DELETE o UPDATE.

Línea 5 y 6: Sentencias T-SQL que se ejecutarán luego de que haya sucedido la acción indicada en la línea 3. En este caso insertará en la tabla auditoria  la fecha actual, la leyenda ‘Nuevo empleado ingresado‘ y el usuario que en este caso será el usuario dbo.

Una vez el código listo, procedemos a ejecutarlo para que se cree nuestro TRIGGER.

trigger_after-01.jpg

Con esto ya hemos creado y asignado el disparador a la tabla empleados, ahora cada vez que un usuario ingrese un nuevo empleado, automáticamente se incluirá información en la tabla auditoria.

trigger_after-02

trigger_after-03

Con esto podemos llevar una especie de bitácora o auditoría según las necesidades que tengamos como DBA.

Saludos!

Roberto Pozo

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: