Ejemplo básico para la creación de un Trigger en Sqlserver.
CREATE TRIGGER T_AUDITORIAAPERTURAS -- NOMBRE TRIGGER
ON APERTURAS -- TABLA A AFECTAR
AFTER DELETE -- ACCION DE DISPARO
-- PUEDE SER TAMBIEN INSERT O UPDATE
AS
BEGIN
-- SET NOCOUNT ON impide que se generen mensajes de texto
-- con cada instrucción
SET NOCOUNT ON;
-- INSERTA EN LA TABLA PARA AUDITORIA LAS FILAS
-- AFECTADAS CUANDO SE EJECUTO UN DELETE
INSERT INTO APERTURASAUDITORIAS
SELECT * FROM DELETED; -- DATOS BORRADOS
-- TAMBIEN PUEDE SER INSERTED QUE ES USADO CUANDO
-- SE REALIZA UN UPDATE O INSERT
-- EN CAMBIO DELETED ES USADO CUANDO SE EJECUTA UN DELETE
-- O UPDATE
END
Opción Instead of (en vez de), desecha la sentencia que gatilló el trigger y ejecuta
las sentencias que están dentro del bloque del trigger
ALTER TRIGGER T_EVITABAJOSUELDO
ON SALDO
INSTEAD OF UPDATE
AS
BEGIN
DECLARE @SUELDO INT
SELECT @SUELDO = SALDO FROM INSERTED
IF @SUELDO < 200000
BEGIN
UPDATE SALDO SET
SALDO = 1000000
END
ELSE
BEGIN
UPDATE SALDO SET
SALDO = @SUELDO
END
END
|