Работа с триггерами
Триггер — это особый тип хранимой процедуры, которая активируется при изменении данных в указанной таблице с помощью одной или нескольких операций изменения данных: UPDATE, INSERT или DELETE.Особые триггеры, называемые триггерами INSTEAD OF, могут определять изменения в базовых таблицах представления.
Триггеры могут обращаться к другим таблицам и содержать сложные инструкции SQL.Они в первую очередь полезны для принудительного применения сложных бизнес-правил или требований.Например, можно управлять разрешением вставки нового порядка с учетом текущего состояния счета клиента.
Триггеры также полезны для принудительного обеспечения целостности ссылок, что позволяет сохранить определенные связи между таблицами при добавлении, обновлении или удалении строк в этих таблицах.Тем не менее, лучшим способом обеспечить целостность ссылок является определение в связанных таблицах ограничений первичного и внешнего ключей.При использовании конструктора таблиц можно создать связь между таблицами, что позволит автоматически создать ограничение внешнего ключа.Дополнительные сведения см. в разделе Связи между таблицами (визуальные инструменты для баз данных).
Триггеры удобно использовать в следующих случаях:
Триггеры действуют автоматически.Они активируются непосредственно после внесения изменений в данные таблицы, например при вводе новых данных вручную или их автоматической подстановки приложением.
Триггеры позволяют каскадно изменять данные в связанных таблицах базы данных.Например, можно создать триггер удаления в столбце title_id таблицы titles, который будет удалять совпадающие строки в других таблицах.Этот триггер использует столбец title_id как уникальный ключ для обнаружения соответствующих строк в таблицах titleauthor, sales и roysched.
Триггеры могут принудительно применять ограничения, которые являются более сложными, чем определенные при помощи Проверочные ограничения (визуальные инструменты для баз данных).В отличие от проверочных ограничений триггеры могут ссылаться на столбцы других таблиц.Например, триггер позволяет откатить обновления, которые предпринимают попытку применить скидку (данные хранятся в таблице discounts) для книг (данные хранятся в таблице titles) с ценой менее 10 долларов США.
Дополнительные сведения о триггерах и примеры см. в документации по соответствующему серверу баз данных.Если используется Microsoft SQL Server, см. раздел "Создание триггеров" в SQL Server Books Online.
В этом подразделе
Практическое руководство. Создание триггера
Практическое руководство. Сохранение триггера
Практическое руководство. Открытие триггера
Практическое руководство. Удаление триггера
Практическое руководство. Изменение триггеров
Использование триггеров INSTEAD OF в представлениях
Практическое руководство. Отображение свойств триггера