Trabajar con desencadenadores
Un desencadenador es un tipo especial de procedimiento almacenado que se ejecuta al modificar datos de una tabla especificada mediante el uso de una o más de las operaciones de modificación de datos: UPDATE, INSERT o DELETE. Los desencadenadores especiales, denominados desencadenadores INSTEAD OF, pueden especificar modificaciones a las tablas base subyacentes de una vista.
Los desencadenadores pueden consultar otras tablas y pueden incluir instrucciones SQL complejas. Principalmente, son útiles para exigir reglas de empresa o requisitos complejos. Por ejemplo, puede controlar si permite o no que se inserte un nuevo pedido en función del estado de cuenta actual de un cliente.
Los desencadenadores son también útiles para exigir la integridad referencial, que conserva las relaciones definidas entre tablas al agregar, actualizar o eliminar las filas de dichas tablas. Sin embargo, la mejor manera de exigir la integridad referencial es definir restricciones PRIMARY KEY y FOREIGN KEY en las tablas relacionadas. Si utiliza el Diseñador de tablas, puede crear una relación entre tablas con el fin de crear de forma automática una restricción FOREIGN KEY. Para obtener información detallada, vea Relaciones entre tablas (Visual Database Tools).
Los desencadenadores resultan útiles por las siguientes razones:
Son automáticos. Se activan inmediatamente después de cualquier modificación de los datos de la tabla, como una entrada manual o una acción de la aplicación.
Pueden propagar cambios en cascada en tablas relacionadas en la base de datos. Por ejemplo, se puede escribir un desencadenador de eliminación en la columna title_id de la tabla titles para que se produzca una eliminación de filas coincidentes de otras tablas. El desencadenador utiliza la columna title_id como clave única para localizar filas coincidentes en las tablas titleauthor, sales y roysched.
Los desencadenadores pueden exigir restricciones más complejas que las definidas con Restricciones CHECK (Visual Database Tools). Al contrario de lo que sucede con las restricciones CHECK, los desencadenadores pueden hacer referencia a columnas de otras tablas. Por ejemplo, un desencadenador puede revertir actualizaciones que intentan aplicar un descuento (almacenado en la tabla discounts) a libros (almacenados en la tabla titles) con un precio inferior a $10.
Para obtener más información y ejemplos de desencadenadores, vea la documentación del servidor de bases de datos. Si utiliza Microsoft SQL Server, consulte "CREATE TRIGGER" en Libros en pantalla de SQL Server.
En esta sección
Cómo: Guardar un desencadenador
Cómo: Eliminar un desencadenador
Cómo: Modificar desencadenadores
Utilizar desencadenadores INSTEAD OF en las vistas
Cómo: Mostrar propiedades del desencadenador