Реализация триггеров DDL

В этом разделе приведены сведения, необходимые для создания, изменения, выключения и удаления триггеров DDL.

Создание триггеров DDL

Триггеры DDL создаются при помощи инструкции Transact-SQL CREATE TRIGGER для триггеров DDL.

Создание триггера DDL

Удаление триггера DDL

Важное примечаниеВажно!

Возможность возвращать результирующие наборы из триггеров будет удалена в следующей версии SQL Server. Триггеры, возвращающие результирующие наборы, могут привести к непредвиденной работе приложений, не предназначенных для работы с ними. Не используйте в разрабатываемых приложениях триггеры, возвращающие результирующие наборы, и запланируйте изменение приложений, которые используют их в настоящее время. Чтобы триггеры не возвращали результирующие наборы в SQL Server 2008, присвойте значение 1 параметру disallow results from triggers. В будущей версии SQL Server значение этого параметра будет 1 по умолчанию.

ПримечаниеПримечание

Триггеры DDL, доступные в области сервера, отображаются в обозревателе объектов среды Среда SQL Server Management Studio в папке Триггеры, которая находится в папке Объекты сервера. Триггеры DDL, доступные в области базы данных, находятся в папке Триггеры базы данных, которая находится в папке Программирование соответствующей базы данных.

Изменение триггеров DDL

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

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

Может быть также зашифровано определение триггера.

Изменение триггера

Просмотр зависимостей триггера

Отключение и удаление триггеров DDL

Если триггер DDL больше не нужен, он может быть отключен или удален.

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

При удалении триггера DDL он удаляется из текущей базы данных. Удаление триггера DDL никоим образом не влияет на объекты или данные, на которые распространялась область действия триггера.

Отключение триггера DDL

Включение триггера DDL

Удаление триггера DDL