Поделиться через


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

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

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

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

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

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

Внимание

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

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

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

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

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

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

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

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

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

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

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

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

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

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