Share via


Directrices de planeamiento del desencadenador DML

Existen dos opciones para el diseño de desencadenadores DML:

  • Se ejecutan los desencadenadores INSTEAD OF en lugar de la acción habitual de desencadenamiento. También se puede definir desencadenadores INSTEAD OF en vistas con una o más tablas base, donde se pueden ampliar los tipos de actualizaciones que puede admitir una vista.

  • Los desencadenadores AFTER se ejecutan después de llevar a cabo una acción de las instrucciones INSERT, UPDATE o DELETE. Especificar AFTER es igual que especificar FOR. El desencadenador AFTER sólo puede especificarse en tablas.

En la tabla siguiente se compara la funcionalidad de los desencadenadores AFTER y INSTEAD OF.

Función

Desencadenador AFTER

Desencadenador INSTEAD OF

Aplicabilidad

Tablas

Tablas y vistas

Cantidad por tabla o vista

Varios por cada acción de desencadenamiento (UPDATE, DELETE y INSERT)

Uno por cada acción de desencadenamiento (UPDATE, DELETE y INSERT)

Referencias en cascada

No se aplica ninguna restricción

No se permiten los desencadenadores INSTEAD OF UPDATE y DELETE en tablas que son destino de las restricciones de integridad referencial en cascada

Ejecución

Después:

  • Procesamiento de restricciones

  • Acciones de integridad referencial declarativa

  • Creación de tablas inserted y deleted

  • La acción de desencadenamiento

Antes:

  • Procesamiento de restricciones

En lugar de:

  • La acción de desencadenamiento

Después:

  • Creación de tablas inserted y deleted

Orden de la ejecución

Se puede especificar la primera y la última ejecución

No aplicable

Referencias a columnas varchar(max), nvarchar(max) y varbinary(max) en las tablas inserted y deleted

Permitido

Permitido

Referencias a columnas text, ntext y image en las tablas inserted y deleted

No permitido

Permitido

Vea también

Conceptos