Создание триггеров и хранимых процедур (СУБД SQL Server и Transact-SQL), страница 2

DECLARE @ndayint

/* Устанавливаем значение переменной равным значению дня (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

ROLLBACKTRANSACTION

/* Для вывода сообщений об ошибке обычно используется инструкция RAISERROR, параметрами которой являются (в порядке следования): текст сообщения, уровень опасности (обычно устанавливается в пределах от 11 до 16), состояние информации (в пределах от 10 до 20) */

RAISERROR ('Дата меньше требуемой',16,20)

END

После ввода текста триггера осуществите проверку синтаксиса (кнопка CheckSyntax), сохраните триггер (кнопка ОК).

Для модификации существующего триггера выберите его из раскрывающегося списка в окне TriggerProperties.

(2)

Создание и модификация хранимой процедуры

Выберите в дереве Проводника пункт StoredProcedures и, активизируя всплывающее меню, дайте команду NewStoredProcedure. В появившемся окне StoredProcedureProperties в рабочую область выводится шаблон текста процедуры: