Documentos de Académico
Documentos de Profesional
Documentos de Cultura
USE BD_EJEMPLO_TRIGGER
CREATE TABLE ITEMS
(ID INT PRIMARY KEY IDENTITY,
DESCRIPCION VARCHAR(30) NOT NULL,
PVP REAL CHECK(PVP>=0),
CANTIDAD INT)
CREATE TABLE PERSONA
(IDPER INT PRIMARY KEY IDENTITY,
NOMBRES VARCHAR(30) NOT NULL,
DIRECCION VARCHAR(50) NOT NULL,
TELEFONO VARCHAR(20),
RUC VARCHAR(13))
--INSERTAMOS UN NUEVO REGISTRO EN PERSONA
INSERT INTO PERSONA VALUES('NICOLE ARIAS','GYE','','0915694781')
SELECT * FROM PERSONA
--CREACION DE TRIGGER (DESENCADENADOR)----PARA PRESENTAR DATOS ANTIGUOS Y DATOS NUEVOS
--DE UNA ACTUALIZACION DE PERSONA
CREATE TRIGGER TR_ACTUALIZAR_PERSONA
ON PERSONA AFTER UPDATE
AS
SELECT * FROM deleted
SELECT * FROM inserted
--PROBAMOS MODIFICANDO DATOS
UPDATE PERSONA SET NOMBRES='NICOLE ARIAS VARGAS',
DIRECCION='GYE - CENTRO',TELEFONO='042725789',
RUC='0915694781' WHERE IDPER=1
--AUDITORIA DE REGISTROS----CREAMOS UNA TABLA DE AUDITORIA PARA LA TABLA PERSONA
CREATE TABLE AUDIT_PERSONA
(IDPER INT,NOMBRES VARCHAR(30),DIRECCION VARCHAR(50),
TELEFONO VARCHAR(20), RUC VARCHAR(13),FECHA DATE, TIPO CHAR(1),
ESTACION VARCHAR(20), USUARIO VARCHAR(20))
--CREAR EL DESENCADENADOR PARA REGISTRAR DATOS DESPUES DE UNA
--INSERCION
CREATE TRIGGER TR_INSERTAR_PERSONA ON PERSONA
AFTER INSERT
AS
DECLARE @ID INT
DECLARE @NOM VARCHAR(30)
DECLARE @DIR VARCHAR(50)
DECLARE @TEL VARCHAR(20)
DECLARE @RUC VARCHAR(13)
--OBTENGO LOS DATOS DE LA TABLA INSERTED
SELECT @ID=IDPER,@NOM=NOMBRES,@DIR=DIRECCION,@TEL=TELEFONO,
@RUC=RUC FROM INSERTED
--INSERTAMOS EL REGISTRO EN LA TABLA DE AUDITORIA
INSERT INTO AUDIT_PERSONA VALUES
(@ID,@NOM,@DIR,@TEL,@RUC,GETDATE(),'I',HOST_NAME(),SYSTEM_USER)
--PROBAMOS INSERTANDO UN NUEVO REGISTRO A PERSONAS
INSERT INTO PERSONA
VALUES('BYRON CUEVA','YAGUACHI','0998871234','1203697854')
--CONSULTAR LOS DATOS DE LA TABLA AUDITORIA DE PERSONAS
SELECT * FROM AUDIT_PERSONA
--CREAR UN TRIGGER PARA ALMACENAR LOS DATOS ANTIGUOS EN LA
--TABLA AUDITORIA DE PERSONAS, ASI MISMO LOS DATOS DE QUIEN
--LO HIZO, LA FECHA Y DESDE QUE SERVIDOR
CREATE TRIGGER TR_MODIFICAR_PERSONA ON PERSONA
AFTER UPDATE
AS