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:
|
Antes:
En lugar de:
Después:
|
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 |