Что такое триггеры «вместо»? - PullRequest
1 голос
/ 07 мая 2009

В SQL Server, что такое Instead Of триггеры?

Ответы [ 3 ]

6 голосов
/ 07 мая 2009

С База данных журнала :

Что такое триггеры "вместо"?

В предыдущих версиях SQL Server Триггеры были разделами кода, которые были прикреплены к таблицам и выполнены автоматически после предопределения обновления произошли по указанному Таблица. Они, конечно, все еще существуют в SQL Server 2000 и выше. вместо триггеров прикреплены к столу в аналогичном Кстати, но код внутри них исполнено вместо оригинала обновление заявления.

1 голос
/ 07 мая 2009

Вместо триггеров это действительно очень круто. В прошлом я использовал вместо триггеров в представлении «только для чтения», чтобы он вел себя как таблица.

Это на самом деле очень круто.

Вы даже можете написать эти триггеры в .NET, если T-SQL не является вашей сильной стороной.

0 голосов
/ 07 мая 2009

Триггеры в основном используются для обеспечения соблюдения бизнес-ограничений. Бизнес-ограничения могут быть реализованы в следующем порядке: целостность объекта (первичный / уникальный ключ), целостность домена (проверочное ограничение), ссылочная целостность (внешний ключ) и, наконец, триггеры. Триггеры используются для реализации бизнес-ограничений, которые являются сложными.

Триггеры похожи на хранимые процедуры, которые автоматически выполняются на основе действия манипуляции данными. «Вместо триггеров» используются для обработки данных, которые мы хотим обрабатывать сами. Вместо INSERT, UPDATE, DELETE написаны на столе для изучения данных и принятия необходимых действий самостоятельно.

Например. Если вы не хотите, чтобы DELETE происходило с таблицей, и хотите отслеживать пользователей, которые пытаются удалить данные из таблицы. Мы можем написать INSTEAD OF TRIGGER и записать информацию currentuser в таблицу аудита.

Например. Если вы хотите бросить пользовательские сообщения для действий пользователя. В расписании экзамена, если пользователь пытается сдать экзамен в выходные дни, мы можем добавить специальное сообщение «Это выходные. Отдых»

Например. Если у нас есть представление, определенное для нескольких таблиц, и на него пробуется вставка, мы можем вместо триггера выполнить соответствующую вставку в базовых таблицах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...