Excluir ou desativar gatilhos DML

Aplica-se a:SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Este tópico descreve como excluir ou desabilitar um gatilho DML no SQL Server usando o SQL Server Management Studio ou o Transact-SQL.

Neste tópico

Antes de começar

Recomendações

  • Quando um gatilho é excluído, ele é descartado do banco de dados atual. A tabela e os dados em que se baseia não são afetados. A exclusão de uma tabela exclui automaticamente todos os gatilhos na tabela.

  • Um gatilho é ativado por padrão quando é criado.

  • 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 disparará quando qualquer INSERT, UPDATE, ou DELETE instrução em que foi programada for executada. Os gatilhos desativados podem ser reativados. Ativar um gatilho não o recria. O gatilho é acionado da mesma maneira que quando foi criado originalmente.

Segurança

Permissões

Para excluir um gatilho DML é necessária a permissão ALTER na tabela ou exibição na qual o gatilho está definido.

Para desabilitar ou habilitar um gatilho DML, no mínimo, um usuário deve ter permissão ALTER na tabela ou exibição na qual o gatilho foi criado.

Usando o SQL Server Management Studio

Para eliminar um trigger DML

  1. No Pesquisador de Objetos , conecte-se a uma instância do Mecanismo de Banco de Dados e expanda essa instância.

  2. Expanda o banco de dados desejado, expanda Tabelase, em seguida, expanda a tabela que contém o gatilho que você deseja excluir.

  3. Expanda Acionadores, clique com o botão direito do rato no acionador para eliminar e, em seguida, clique em Eliminar.

  4. Na caixa de diálogo Excluir Objeto, verifique o gatilho a ser excluído e clique em OK.

Para desativar e ativar um gatilho DML

  1. No Pesquisador de Objetos , conecte-se a uma instância do Mecanismo de Banco de Dados e expanda essa instância.

  2. Expanda o banco de dados desejado, expanda Tabelase, em seguida, expanda a tabela que contém o gatilho que você deseja desabilitar.

  3. Expanda Acionadores, clique com o botão direito do rato no acionador para desativar e, em seguida, clique em Desativar.

  4. Para ativar o gatilho, clique em Ativar.

Usando Transact-SQL

Para eliminar um trigger DML

  1. Conecte-se ao Mecanismo de Banco de Dados.

  2. Na barra Padrão, clique em Nova Consulta.

  3. Copie e cole os exemplos a seguir na janela de consulta. Execute a CREATE TRIGGER instrução para criar o Sales.bonus_reminder gatilho. Para eliminar o trigger, execute a DROP TRIGGER instrução.

--Create the trigger.  
USE AdventureWorks2022;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
  
--Delete the trigger.  
USE AdventureWorks2022;  
GO  
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL  
   DROP TRIGGER Sales.bonus_reminder;  
GO  
  

Para desativar e ativar um gatilho DML

  1. Conecte-se ao Mecanismo de Banco de Dados.

  2. Na barra Padrão, clique em Nova Consulta.

  3. Copie e cole os exemplos a seguir na janela de consulta. Execute a CREATE TRIGGER instrução para criar o Sales.bonus_reminder gatilho. Para desativar e ativar o trigger, execute as DISABLE TRIGGER instruções e ENABLE TRIGGER , respetivamente.

--Create the trigger.  
USE AdventureWorks2022;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
  
--Disable the trigger.  
USE AdventureWorks2022;  
GO  
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  
  
--Enable the trigger.  
USE AdventureWorks2022;  
GO  
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  

Ver também

ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
ENABLE TRIGGER (Transact-SQL)
DISABLE TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
Obter Informações Sobre os Triggers DML
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_módulos (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers (Transact-SQL)
sys.server_trigger_events (Transact-SQL)
sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules (Transact-SQL)