В главе 12 рассказано, как вы можете перехватывать изменения данных, используя механизм, называемый CDC (change data capture, перехват изменения данных). Триггеры DML также могут быть использованы для решения той же задачи. В примере 14.1 показано, как триггеры могут создавать контрольный журнал, содержащий сведения о действиях с одной или более таблиц базы данных.
В примере 14.1 показано, как триггеры могут быть использованы для реализации контрольного журнала о действиях с таблицей. В этом примере создается таблица auditbudget, которая сохраняет все изменения в столбце budget таблицы project. Запись всех изменений в этом столбце будет выполнена при использовании триггера modify_budget.
Любое изменение столбца budget с помощью оператора update активизирует данный триггер. В процессе выполнения триггера строкам таблиц deleted и inserted присваиваются значения соответствующих переменных @budget_oid, @budget_new и @project_number. Присвоенные значения вместе с именем пользователя и текущей датой будут после этого добавлены в таблицу audit_budget.