jueves, 4 de agosto de 2011

Trigger



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