Share via


Especificar cuándo se activa un desencadenador DML

Para controlar el momento en que se activa un desencadenador DML se puede especificar una de estas dos opciones:

  • El desencadenador AFTER se activa después de la acción desencadenadora INSTEAD OF (INSERT, UPDATE o DELETE) y tras haber procesado cualquier restricción. Puede solicitar los desencadenadores AFTER con sólo especificar las palabras clave AFTER o FOR. Debido a que la palabra clave FOR tiene el mismo efecto que AFTER, los desencadenadores DML con la palabra clave FOR también se clasifican como desencadenadores AFTER.

  • Los desencadenadores INSTEAD OF se activan en lugar de la acción desencadenadora y antes del procesamiento de las restricciones. Si una tabla incluye desencadenadores AFTER, se activarán cuando finalice el procesamiento de las restricciones. Si se infringen las restricciones, se revertirán las acciones del desencadenador INSTEAD OF y no se ejecutará el desencadenador AFTER.

Cada tabla o vista puede tener un desencadenador INSTEAD OF para cada acción desencadenadora (UPDATE, DELETE e INSERT). Una tabla puede tener varios desencadenadores AFTER para cada acción desencadenadora.

Ejemplos

A. Usar el desencadenador INSTEAD OF para reemplazar la acción de desencadenamiento estándar

CREATE TRIGGER TableAInsertTrig ON TableA
INSTEAD OF INSERT
AS ...

B. Usar el desencadenador AFTER para aumentar la acción de desencadenamiento estándar

CREATE TRIGGER TableBDeleteTrig ON TableB
AFTER DELETE
AS ...

C. Usar el desencadenador FOR para aumentar la acción de desencadenamiento estándar

-- This statement uses the FOR keyword to generate an AFTER trigger.
CREATE TRIGGER TableCUpdateTrig ON TableC
FOR UPDATE
AS ...

Vea también

Conceptos