Compartir a través de


Crear desencadenadores

Para crear desencadenadores puede utilizar el Diseñador de tablas o el comando CREATE TRIGGER. Puede crear un desencadenador para cada tabla y para cada uno de los tres eventos INSERT, UPDATE y DELETE. En un momento dado, una tabla puede tener un máximo de tres desencadenadores. Los desencadenadores deben devolver un valor verdadero (.T.) o falso (.F.).

Para crear un desencadenador

  • En la ficha Tabla del Diseñador de tablas, escriba la expresión del desencadenador o el nombre del procedimiento almacenado que la contiene en los cuadros Insertar desencadenador, Actualizar desencadenador, o Eliminar desencadenador.

    –O bien–

  • Utilice el comando CREATE TRIGGER.

Por ejemplo, es posible que cada vez que Comercial Tasmania venda un producto, desee comparar las unidades restantes Units_in_stock con el nivel del nuevo pedido Reorder_level y recibir una notificación de si es necesario volver a pedir ese producto. Para esto, puede crear un desencadenador Update para la tabla products. Cada vez que se venda un producto, el desencadenador Update se activará y el campo Units_in_stock se actualizará para reflejar los productos restantes.

Para crear el desencadenador, puede especificar updProductsTrigger( ) como desencadenador Update de la tabla products. Puede agregar un campo a products, llamado reorder_amount, para almacenar la cantidad que desea pedir cada vez que realice un nuevo pedido del producto, y crear una tabla reorder con los campos product_id y reorder_amount. A continuación puede agregar este código al procedimiento almacenado:

PROCEDURE updProductsTrigger
   IF (units_in_stock+units_on_order) <= reorder_level
   INSERT INTO Reorder VALUES(Products.product_id, ;
    Products.reorder_amount)
   ENDIF   
ENDPROC

Puede crear desencadenadores similares para los eventos de inserción o eliminación mediante las cláusulas FOR INSERT o FOR DELETE, respectivamente, en lugar de la cláusula FOR UPDATE. Si intenta crear un desencadenador que ya existe para un evento y una tabla determinados y está activado SET SAFETY, Visual FoxPro le preguntará si desea sobrescribir el desencadenador existente.

Vea también

Uso de desencadenadores | Quitar o eliminar desencadenadores | Trabajar con tablas | Modificar desencadenadores | Modificar la estructura de la tabla