CREATE TRIGGER имя-триггера ON имя-таблицы
FOR INSERT [, UPDATE [, DELETE]]
AS
Запрос
(Шаблон текста триггера выводится в рабочее поле окна).
Пример создания триггера.
Создать триггер на ввод и обновление для таблицы ЗАКАЗ, в котором устанавливается ограничение, состоящее в том, что заказы принимаются до 15 числа каждого месяца включительно.
CREATE TRIGGER CheckDate ON ZAKAZ
/* Триггер предназначен для контроля операций вставки и обновления: */
FOR INSERT, UPDATE
AS
/* Объявляем переменную, которая будет использована для спецификации проверочного условия: */
DECLARE @nday int
/* Устанавливаем значение переменной равным значению дня (day – стандартный параметр встроенной функции DatePart, выделяющей нужную часть даты – число месяца, для выделения месяца используется – month, для года - year) поля date «вводимой» таблицы, т.е. тех строк таблицы, которые будут вставляться либо редактироваться. «Вводимая» таблица имеет ту же структуру, что и основная, и стандартно именуется как inserted. */
SELECT @nday=DatePart(day, i.data_zakaza) FROM ZAKAZ t, inserted i
/* Для идентификации строк «вводимой» таблицы в запросе задается условие равенства ключевых полей основной и «вводимой» таблиц: */
WHERE t.nomer_zakaza=i.nomer_zakaza
/* Ограничение состоит в том, что день вводимой даты не может быть меньше 15: */
IF @nday<=15
/* При нарушении ограничения осуществляется откат транзакции обновления: */
BEGIN
ROLLBACK TRANSACTION
/* Для вывода сообщений об ошибке обычно используется инструкция RAISERROR, параметрами которой являются (в порядке следования): текст сообщения, уровень опасности (обычно устанавливается в пределах от 11 до 16), состояние информации (в пределах от 10 до 20) */
RAISERROR ('Дата меньше требуемой',16,20)
END
После ввода текста триггера осуществите проверку синтаксиса (кнопкаParse), сохраните триггер (Ctrl+S или кнопка Save на панели инструментов).
Для модификации существующего триггера выберите его из раскрывающегося списка Triggers и в контекстном меню выберите Modify.