Descripción de los desencadenadores DML

Microsoft SQL Server 2005 proporciona dos mecanismos principales para exigir las reglas de negocios y la integridad de los datos: restricciones y desencadenadores. Un desencadenador es un tipo especial de procedimiento almacenado que surte efecto automáticamente cuando se ejecuta un evento de lenguaje. SQL Server incluye dos tipos generales de desencadenadores: DML y DDL.

Los desencadenadores DDL son nuevos en SQL Server 2005. Estos desencadenadores se invocan cuando un evento de lenguaje de definición de datos (DDL) tiene lugar en el servidor o la base de datos. Se explican con mayor detalle en Desencadenadores DDL.

Los desencadenadores DML se invocan cuando un evento de lenguaje de manipulación de datos (DML) tiene lugar en la base de datos. Los eventos DML incluyen instrucciones INSERT, UPDATE o DELETE que modifican datos en una tabla o vista especificada. Un desencadenador DML puede consultar otras tablas e incluir instrucciones Transact-SQL complejas. El desencadenador y la instrucción que lo activa se tratan como una sola transacción, que puede revertirse desde el desencadenador. Si se detecta un error grave (por ejemplo, no hay suficiente espacio en disco), se revierte automáticamente toda la transacción.

Los desencadenadores DML tienen varias utilidades:

  • Pueden realizar cambios en cascada mediante tablas relacionadas de la base de datos; sin embargo, estos cambios pueden ejecutarse de manera más eficaz mediante restricciones de integridad referencial en cascada.
  • Pueden proteger contra operaciones INSERT, UPDATE y DELETE incorrectas o dañinas, y exigir otras restricciones que sean más complejas que las definidas con restricciones CHECK.
    A diferencia de éstas, los desencadenadores DML pueden hacer referencia a columnas de otras tablas. Por ejemplo, un desencadenador puede utilizar una instrucción SELECT de otra tabla para comparar con los datos insertados o actualizados y para realizar acciones adicionales, como modificar los datos o mostrar un mensaje de error definido por el usuario.
  • Pueden evaluar el estado de una tabla antes y después de realizar una modificación de datos y actuar en función de esa diferencia.
  • Varios desencadenadores DML del mismo tipo (INSERT, UPDATE o DELETE) en una tabla permiten realizar distintas acciones en respuesta a una misma instrucción de modificación.

Vea también

Conceptos

Tipos de desencadenadores DML
Comparación de los desencadenadores y las restricciones
Desencadenadores DML de la base de datos de ejemplo AdventureWorks

Ayuda e información

Obtener ayuda sobre SQL Server 2005