Триггеры представляют собой разновидность хранимых процедур, запускаемых автоматически при попытке изменения данных в таблицах, с которы­ми триггеры связаны. Триггер запускается автоматически при вставке, моди­фикации или удалении данных в определенной таблице.

Наиболее часто триггеры применяются для сложных критериев в базе дан­ных в случае, когда недостаточно стандартных ограничений и табличных средств по обеспечению целостности данных. Триггеры можно рассматривать как своего рода фильтры, вступающие в действие после выполнения всех опе­раций в соответствии с правилами, стандартными значениями и т. п. В SQL Server 2000 появилась возможность создавать триггеры и для представлений.

Триггер и вызвавший его оператор Transact-SQL рассматриваются как единая транзакция, отменяемая (откатываемая) из триггера. Обычно в со­став триггера входит набор команд выполнения некоторых действий над данными или проверки определенных условий. При невозможности обра­ботки данных или невыполнимости условий происходит откат транзак­ции.

Создание триггера возможно владельцем базы данных. Это ограничение позволяет избежать случайного изменения структуры таблиц, способов свя­зи с ними других объектов и т. п.

Для создания триггеров используется оператор CREATE, упрощенный фор­мат которого имеет следующий вид:

CREATE TRIGGER [владелец.]имя_триггера

ON [владелец. ]{имя_ таблицы | имяпредставления}

[WITH ENCRYPTION]

FOR [{AFTER | INSTEAD OF}]

{INSERT, UPDATE, DELETE}

AS

<onepaTopbi_SQL>

Параметр WITH ENCRYPTION (С шифрованием) служит для предотвра­щения возможности прочтения текста триггера после помещения его на сер­вер.

После ключевого слова FOR указывается тип триггера: стандартный (AFTER), запускаемый после выполнения пользователем изменений данных, либо выполняемый взамен команды, приведшей к запуску триггера (INSTEAD OF). По умолчанию считается заданным тип AFTER.

Ключевые слова INSERT (Вставить), UPDATE (Обновить) и DELETE (Удалить) определяют операции, которые инициируют выполнение тригге­ра.

 

 

 

Hosted by uCoz