Использование таблиц удаления и добавления

Оценить
(1 голос)

При создании синхронизирующего действия в триггере вы обычно должны указать, на какое значение столбца вы ссылаетесь - на значение, которое столбец имел до выполненного изменения или после изменения. По этой причине для проверки нужных значений создаются две виртуальные таблицы со специальными именами:

♦ deleted содержит копии строк, которые были удалены из таблицы;

♦ inserted содержит копии строк, которые были добавлены в таблицу.

Структура этих таблиц эквивалентна тем таблицам, для которых задан триггер.

Таблица deleted используется, если в операторе create trigger задано предложение delete или update. Таблица inserted используется, если в операторе create trigger задано предложение insert или update. Это означает, что для каждого оператора delete, выполняемого в действиях триггера, создается таблица deleted. Аналогично, для каждого оператора insert, выполняемого в действиях триггера, создается таблица inserted.

Оператор update трактуется как оператор delete, за которым следует оператор insert. Поэтому для каждого оператора update, выполняемого в действиях триггера, создаются таблицы deleted и inserted (именно в этом порядке).

Материализация таблиц deleted и inserted осуществляется с использованием средств контроля версий строк, которые подробно обсуждались. Когда операторы DML, такие как insert, update и delete, выполняются для таблицы, соответствующей триггеру, все изменения таблицы всегда фиксируются в виде версий строк. Когда триггеру требуется информация из таблицы deleted, он выбирает данные из истории версий. В случае таблицы inserted триггер выбирает данные из самой последней версии строки.


Области приложений для DML-триггеров
Триггеры AFTER
Создание контрольного журнала
Реализация бизнес-правил
Поддержание ограничений целостности

Добавить комментарий


Защитный код
Обновить

© 2018 www.serversql.ru. Все права защищены.