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

Применимо к:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureБаза данных SQL в Microsoft Fabric

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

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

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

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

Внимание

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

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

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

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

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

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

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

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

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

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

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

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

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

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