Три́ггер (англ. trigger) — хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено действием по модификации данных: добавлением INSERT, удалением DELETE строки в заданной таблице, или изменением UPDATE данных в определённом столбце заданной таблицы реляционной базы данных. Триггеры применяются для обеспечения целостности данных и реализации сложной бизнес-логики. Триггер запускается сервером автоматически при попытке изменения данных в таблице, с которой он связан. Все производимые им модификации данных рассматриваются как выполняемые в транзакции, в которой выполнено действие, вызвавшее срабатывание триггера. Соответственно, в случае обнаружения ошибки или нарушения целостности данных может произойти откат этой транзакции.
Вопросы/Ответы
Практический пример.
Триггер ограничивающий удаление строк
Вопрос
tomat (2002-12-18 12:07) [0]
Здравствуйте!
Существует ли возможность с помощью триггера (или др. средств) запретить удалять строку (запись) в зависимости от значения столбца (поля).
Спасибо!
Ответ 1:
Romkin (2002-12-18 12:09) [1]
Можно, достаточно дать exception в нужный момент, и вся транзакция откатится. Естественно, before delete
Ответ 2:
FreeLancer (2002-12-18 12:14) [2]
BEFORE DELETE
...
AS
BEGIN
IF (Pole = "Bad Value") THEN EXCEPTION MyException;
END
или
...
AS
BEGIN
IF (Pole = "Bad Value") THEN EXIT; /* По-тихому */
END
Больше вопросов и ответов на тему триггеров по этой ссылке.
Подписывайтесь на канал, ставьте лайки, делитесь комментариями.