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
Desativa um gatilho.
Transact-SQL convenções de sintaxe
Sintaxe
DISABLE 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 gatilhos DDL ou de logon.
trigger_name
É o nome do gatilho a desativar.
ALL
Indica que todos os gatilhos definidos no âmbito da cláusula ON estão desativados.
Atenção
O SQL Server cria gatilhos em bases de dados que são publicados para replicação de fusões. Especificar TODOS nas bases de dados publicadas desativa estes gatilhos, o que prejudica a replicação. Verifique se a base de dados atual não está publicada para replicação de fusão antes de especificar ALL.
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
Os gatilhos são ativados por defeito quando são criados. Desativar um gatilho não o elimina. O gatilho ainda existe como um objeto no banco de dados atual. No entanto, o gatilho não é ativado quando são executadas quaisquer Transact-SQL instruções sobre as quais foi programado. Os gatilhos podem ser reativados usando ENABLE TRIGGER. Os gatilhos DML definidos em tabelas também podem ser desativados ou ativados usando o ALTER TABLE.
Alterar o trigger usando a instrução ALTER TRIGGER ativa o trigger.
Permissions
Para desativar um disparador DML, no mínimo, o utilizador deve ter permissão ALTER na tabela ou vista onde o disparador foi criado.
Para desativar um trigger DDL com o âmbito do servidor (EM TODOS OS SERVIDORES) ou um trigger de logon, o utilizador deve ter permissão CONTROL SERVER sobre o servidor. Para desativar um disparador DDL com âmbito de base de dados (ON DATABASE), no mínimo, o utilizador deve ter ALTERAR QUALQUER PERMISSÃO DE DISPARO DDL na base de dados atual.
Examples
Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que pode ser descarregado da página inicial de Exemplos e Projetos da Comunidade do Microsoft SQL Server.
A. Desativar um gatilho DML numa tabela
O exemplo seguinte desativa o gatilho uAddress criado na tabela Person.
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
B. Desativar um gatilho DDL
O exemplo seguinte cria um gatilho safety DDL com âmbito de base de dados e depois desativa-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
C. Desativar todos os gatilhos definidos com o mesmo âmbito
O exemplo seguinte desativa todos os gatilhos DDL que foram criados no âmbito do servidor.
DISABLE Trigger ALL ON ALL SERVER;
GO
Ver também
ATIVAR TRIGGER (Transact-SQL)
ALTERAR DISPARADOR (Transact-SQL)
CRIAR GATILHO (Transact-SQL)
GATILHO DE QUEDA (Transact-SQL)
sys.triggers (Transact-SQL)