Un trigger (o disparador) en una Base de datos , es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Dependiendo de la base de datos, los triggers pueden ser de inserción (INSERT), actualización (UPDATE) o borrado (DELETE).
Son usados para mejorar la administración de la Base de datos, sin necesidad de contar con que el usuario ejecute la sentencia de SQL.
Sintaxis
CREATE TRIGGER <Trigger_Name, sysname, Trigger_Name>
ON <Table_Name, sysname, Table_Name>
AFTER <Data_Modification_Statements, , INSERT,DELETE,UPDATE>
AS
BEGIN
SET NOCOUNT ON added to prevent extra result sets from
interfering with SELECT statements.
SET NOCOUNT ON;
Insert statements for trigger here
END
PARA CREAR UN TRIGGER
crear un Trigger para insertar un pedido de algún producto cuando la cantidad de éste, en nuestro almacén, sea inferior a un valor dado.
Create or replace trigger
BEFORE UPDATE ON tabla_almacen
FOR ALL records
IF :NEW.producto < 100 THEN
INSERT INTO tabla_pedidos(producto) VALUES ('1000');
END IF;
SELECT DBO.POLVE.TEST
END
El siguiente ejemplo, graba un historico de saldos cada vez que se modifica un saldo de la tabla cuentas.
CREATE TRIGGER TR_CUENTAS
ON CUENTAS
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO HCO_SALDOS
(IDCUENTA, SALDO, FXSALDO)
SELECT IDCUENTA, SALDO, getdate()
FROM INSERTED
END
La siguiente instrucción provocará que el trigger se ejecute:
UPDATE CUENTAS SET SALDO = SALDO + 10 WHERE IDCUENTA = 1 |
No hay comentarios:
Publicar un comentario