update - триггеры sql для чайников




Разница между триггерами FOR и AFTER? (2)

AFTER указывает, что триггер DML запускается только тогда, когда все операции, указанные в инициирующей инструкции SQL, выполнены успешно. Все реляционные каскадные действия и проверки ограничений также должны быть успешными до запуска этого триггера. AFTER является значением по умолчанию, когда FOR является единственным указанным ключевым словом.

ПОСЛЕ триггеров не могут быть определены в представлениях.

INSTEAD OF Указывает, что триггер DML выполняется вместо запуска SQL-оператора, поэтому переопределяет действия операторов запуска. INSTEAD OF нельзя указать для триггеров DDL или входа в систему.

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql

В чем разница между триггерами FOR и AFTER?


Нет никакой разницы, они делают то же самое.

CREATE TRIGGER trgTable on dbo.Table FOR INSERT,UPDATE,DELETE

Такой же как

CREATE TRIGGER trgTable on dbo.Table AFTER INSERT,UPDATE,DELETE

Триггер INSTEAD OF отличается и срабатывает перед и вместо вставки и может использоваться для просмотра, чтобы вставить соответствующие значения в базовые таблицы.





triggers