Триггер создается посредством оператора create trigger, который имеет следующий синтаксис:
create trigger [schema_name.] trigger_name on {table_name I view_name}
[with dml_trigger_option {, ...]] {for I after | instead of} {[insert] [,] [update] [,] [delete]} [with append]
[as sql_statement \ external name method_name}
Здесь schema_name- имя схемы, которой принадлежит триггер; trigger_ name- имя триггера; tabie_name- имя таблицы, для которой задается триггер. Для представлений также поддерживаются триггеры, как показано в варианте view_name.
Опции after и instead of являются двумя дополнительными опциями, которые вы можете задать в триггере. (Предложение for является синонимом для after.) Триггеры after вызываются после появления действий, обрабатываемых в триггерах. Триггеры instead of выполняются вместо заданных в триггере действий. Триггеры after могут создаваться только для таблиц, в то время как триггеры instead of могут создаваться как для таблиц, так и для представлений. Примеры, показывающие использование этих двух типов триггеров, будут даны далее В этом разделе.
Опции insert, update и delete задают действия триггера. (Действием триггера является тип оператора Transact-SQL, который активирует этот триггер.) Эти три оператора могут быть записаны в любой допустимой комбинации. Оператор delete недопустим, если используется оператор if update (ига столбца).
Как вы можете видеть в синтаксисе оператора create trigger, спецификация as sqi_statement используется для задания действия (действий) триггера. (Вы также можете использовать опцию external nane, которая рассматривается далее В этом разделе.)
Только владелец базы данных, администраторы DDL и владелец таблицы, для которой определяется триггер, имеют право создавать триггер для текущей базы данных. (В отличие от полномочий для других операторов create это полномочие не может быть передано другим пользователям.)