Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Triggers
Triggers
Triggers
SQL
Trigger – Desencadenadores- Disparadores
Insertar
Eliminar
Actualizar
Inserted
Deleted
Update
SQL
¿Cómo Obtener Información de los Triggers?
Sp_depends nombre_de_tabla
Muestra los triggers que dependen de la Tabla
Sp_helpTrigger nombre_de_tabla
Trigger definidos por la tabla
Sp_helpText Nombre_de_trigger
Muestra la Sentencia que definio el trigger
SQL
Base de Datos para BDVentas
SQL
Ejemplo de Trigger de Inserción
Verificar:
Insert detabol Values ('B001','P01',5)
select * from producto
SQL
Ejemplo de Trigger de Inserción
USE ejemplotrigger
TABLACREDITO
TABLA CREDITO
TABLA
TABLACUOTAS
CUOTAS
Trigger de Inserción de línea de Crédito de Clientes
SQL
CREATE TRIGGER IN_CREDITO
ON CREDITO
FOR INSERT
AS
DECLARE @VNCRE VARCHAR(3)
DECLARE @VNC INT
DECLARE @VMONTOCRE DECIMAL(8,2)
DECLARE @VFECHATRA DATETIME
DECLARE @MONTOCUOTA DECIMAL(8,2)
DECLARE @VNVECES INT
SELECT @VNCRE=INSERTED.NCRE FROM INSERTED
SELECT @VNC=INSERTED.NC FROM INSERTED
SELECT @VMONTOCRE=INSERTED.MONTOCRE FROM INSERTED
SELECT @VFECHATRA=INSERTED.FECHATRA FROM INSERTED
SELECT @MONTOCUOTA=@VMONTOCRE/@VNC
SELECT @VNVECES=1
WHILE @VNVECES<=@VNC
BEGIN
INSERT INTO CUOTAS (NCRE,NUCU,MONTOCU,FECHAPAG)
VALUES(@VNCRE,@VNVECES,@MONTOCUOTA,DATEADD("mm",@VNVECES,@V
FECHATRA))
SET @VNVECES=@VNVECES+1
END
TABLA
TABLACREDITO
CREDITO
TABLA
TABLACUOTAS
CUOTAS
TABLA
TABLACREDITOCOPIA
CREDITOCOPIA
SQL
Trigger de Eliminación
TABLACREDITO
TABLA CREDITO 44
11
22
TABLA
TABLACUOTAS
CUOTAS
33
44
SQL Trigger de Actualización de Registro en la Tabla Crédito en los campos
Monto de Crédito y/o numero de cuotas
CREATE TRIGGER UP_CREDITO
ON CREDITO
FOR UPDATE
AS
IF UPDATE(NC) or UPDATE(MONTOCRE)
BEGIN
DECLARE @VE_NC INT
DECLARE @VI_NC INT
DECLARE @VNCRE VARCHAR(3)
DECLARE @VMONTOCRE DECIMAL(8,2)
DECLARE @VFECHATRA DATETIME
DECLARE @MONTOCUOTA DECIMAL(8,2)
DECLARE @VNC INT
DECLARE @VNVECES INT
SELECT @VE_NC=DELETED.NC FROM DELETED
SELECT @VI_NC=INSERTED.NC FROM INSERTED
SELECT @VNCRE=INSERTED.NCRE FROM INSERTED
sELECT @VMONTOCRE=INSERTED.MONTOCRE FROM INSERTED
SELECT @VFECHATRA=INSERTED.FECHATRA FROM INSERTED
SELECT @MONTOCUOTA=@VMONTOCRE/@VI_NC
SELECT @VNVECES=1
DELETE FROM CUOTAS WHERE NCRE=@VNCRE
WHILE @VNVECES<=@VI_NC
BEGIN
INSERT INTO CUOTAS (NCRE,NUCU,MONTOCU,FECHAPAG)
VALUES(@VNCRE,@VNVECES,@MONTOCUOTA,DATEADD("mm",@VNVECES,@VFECHATRA))
SET @VNVECES=@VNVECES+1
END
END
SQL
Probando el Trigger de Actualización
UPDATE CREDITO
SET NC=3,MONTOCRE=1000
WHERE NCRE='C01'