Найти тему
Разум и вера

Триггеры SQL. Практические вопросы программирования и ответы на них

Управление на основе триггеров
Управление на основе триггеров
Три́ггер (англ. 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

Больше вопросов и ответов на тему триггеров по этой ссылке.

Подписывайтесь на канал, ставьте лайки, делитесь комментариями.