Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
Azure SQL База данных
Azure SQL Управляемый экземпляр
SQL База данных в Microsoft Fabric
Включает триггер DML, DDL или logon.
Соглашения о синтаксисе Transact-SQL
Синтаксис
ENABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
Аргументы
schema_name
Имя схемы, к которой принадлежит триггер. Аргумент schema_name не может указываться для триггеров DDL или триггеров входа.
trigger_name
Имя триггера.
ВСЕ
Указывает, что включаются все триггеры, определенные в области предложения ON.
object_name
Имя таблицы или представления, для выполнения которых создан триггер DML с именем trigger_name.
DATABASE
Показывает, что триггер DDL trigger_name был создан или изменен для выполнения в области базы данных.
ВСЕ СЕРВЕРЫ
Применимо: SQL Server 2008 (10.0.x) и более поздних версий.
Показывает, что триггер DDL trigger_name был создан или изменен для выполнения в области сервера. Параметр ALL SERVER также применяется к триггерам входа.
Примечание.
Этот параметр недоступен в автономной базе данных.
Замечания
При включении триггера он не создается повторно. Отключенный триггер не может быть запущен, но продолжает существование в виде объекта в текущей базе данных. Включение триггера приводит к его запуску при выполнении любых инструкций Transact-SQL, на которые он изначально был запрограммирован. Триггеры отключаются с помощью инструкции DISABLE TRIGGER. Триггеры DML, определенные в таблицах, также можно отключать или включать с помощью ALTER TABLE.
Разрешения
Чтобы включить триггер DML, пользователю необходимо, как минимум, обладать разрешением ALTER для таблицы или представления, на которые был создан триггер.
Для включения триггера DDL в области сервера (ON ALL SERVER) или триггера входа пользователю необходимо обладать разрешением CONTROL SERVER на этот сервер. Чтобы включить триггер DDL в области базы данных (ON DATABASE), пользователю необходимо, как минимум, иметь разрешение ALTER ANY DATABASE DDL TRIGGER для текущей базы данных.
Примеры
А. Включение триггера DML для таблицы
В данном примере отключается триггер uAddress, созданный для таблицы Address в базе данных AdventureWorks, а затем он включается.
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
ENABLE Trigger Person.uAddress ON Person.Address;
GO
B. Включение триггера DDL
В следующем примере создается триггер DDL safety в области базы данных, а затем он отключается и включается.
CREATE TRIGGER safety
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT 'You must disable Trigger "safety" to drop or alter tables!'
ROLLBACK;
GO
DISABLE TRIGGER safety ON DATABASE;
GO
ENABLE TRIGGER safety ON DATABASE;
GO
В. Включение всех триггеров, определенных в одной области
В следующем примере включаются все триггеры DDL, созданные в области сервера.
Применимо: SQL Server 2008 (10.0.x) и более поздних версий.
ENABLE Trigger ALL ON ALL SERVER;
GO
См. также
DISABLE TRIGGER (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)