Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Ativa um disparador DML, DDL ou logon.
Transact-SQL convenções de sintaxe
Sintaxe
ENABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
Arguments
schema_name
É o nome do esquema ao qual o gatilho pertence.
schema_name não pode ser especificado para DDL ou gatilhos de logon.
trigger_name
É o nome do gatilho a ativar.
ALL
Indica que todos os gatilhos definidos no âmbito da cláusula ON estão ativados.
object_name
É o nome da tabela ou vista onde o disparador DML trigger_name foi criado para executar.
DATABASE
Para um disparador DDL, indica que trigger_name foi criado ou modificado para ser executado com o âmbito da base de dados.
TODO O SERVIDOR
Aplica-se a: SQL Server 2008 (10.0.x) e posterior.
Para um disparador DDL, indica que trigger_name foi criado ou modificado para executar com o âmbito do servidor. ALL SERVER também se aplica aos gatilhos de logon.
Observação
Esta opção não está disponível numa base de dados contida.
Observações
Ativar um gatilho não o recria. Um gatilho desativado ainda existe como objeto na base de dados atual, mas não dispara. Ativar um trigger, faz com que este dispare quando são executadas quaisquer Transact-SQL instruções em que foi originalmente programado. Os gatilhos são desativados ao usar o DISABLE TRIGGER. Os gatilhos DML definidos em tabelas também podem ser desativados ou ativados usando o ALTER TABLE.
Permissions
Para ativar um disparador DML, no mínimo, o utilizador precisa de permissão ALTER na tabela ou vista onde o disparador foi criado.
Para ativar um gatilho DDL com âmbito de servidor (EM TODOS OS SERVIDORES) ou um gatilho de logon, o utilizador precisa de permissão CONTROL SERVER no servidor. Para permitir um disparador DDL com âmbito de base de dados (ON DATABASE), no mínimo, o utilizador precisa de ALTERAR QUALQUER PERMISSÃO DE DISPARO DDL DE BASE DE DADOS na base de dados atual.
Examples
A. Ativar um gatilho DML numa tabela
O exemplo seguinte desativa o gatilho uAddress criado numa tabela Address na base de dados AdventureWorks e depois ativa-o.
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
ENABLE Trigger Person.uAddress ON Person.Address;
GO
B. Ativação de um gatilho DDL
O exemplo seguinte cria um gatilho safety DDL com âmbito de base de dados, e depois desativa-o e ativa-o.
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
C. Ativar todos os gatilhos definidos com o mesmo âmbito
O exemplo seguinte ativa todos os gatilhos DDL que foram criados no âmbito do servidor.
Aplica-se a: SQL Server 2008 (10.0.x) e posterior.
ENABLE Trigger ALL ON ALL SERVER;
GO
Ver também
DESATIVAR ACIONADOR (Transact-SQL)
ALTERAR DISPARADOR (Transact-SQL)
CRIAR GATILHO (Transact-SQL)
GATILHO DE QUEDA (Transact-SQL)
sys.triggers (Transact-SQL)