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.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: