Excluir ou desabilitar gatilhos DML

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

Neste tópico

  • Antes de começar:

    Recomendações

    Segurança

  • Para excluir ou desabilitar um gatilho DML, usando:

    SQL Server Management Studio

    Transact-SQL

Antes de começar

Recomendações

  • Quando um gatilho é excluído, ele é descartado do banco de dados atual. A tabela e os dados nos quais está baseada não são afetados. Excluir uma tabela exclui automaticamente todos os gatilhos da tabela.

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

  • Ao desabilitar um gatilho, você não o descarta. O gatilho ainda existe como um objeto no banco de dados atual. Porém, o gatilho não será acionado quando qualquer instrução INSERT, UPDATE ou DELETE, em que ele tenha sido programado, for executada. Os gatilhos desabilitados podem ser habilitados novamente. A habilitação de um disparador não recria o mesmo. O gatilho é acionado da mesma forma como foi criado.

Segurança

Permissões

A exclusão de um gatilho DML requer 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 a permissão ALTER na tabela ou exibição na qual o gatilho foi criado.

Ícone de seta usado com o link Voltar ao Início[Top]

Usando o SQL Server Management Studio

Para excluir um gatilho DML

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

  2. Expanda o banco de dados que você quer, expanda Tabelas e expanda a tabela que contém o gatilho que você quer excluir.

  3. Expanda Gatilhos, clique com o botão direito do mouse no gatilho para excluí-lo e depois clique em Excluir.

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

Para desabilitar e habilitar um gatilho DML

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

  2. Expanda o banco de dados que você quer, expanda Tabelas e expanda a tabela que contém o gatilho que você quer desabilitar.

  3. Expanda Gatilhos, clique com o botão direito do mouse no gatilho para desabilitá-lo e depois clique em Desabilitar.

  4. Para habilitar o gatilho, clique em Habilitar.

Ícone de seta usado com o link Voltar ao Início[Top]

Usando Transact-SQL

Para excluir 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 instrução CREATE TRIGGER para criar o gatilho Sales.bonus_reminder. Para excluir o gatilho, execute a instrução DROP TRIGGER.

--Create the trigger.
USE AdventureWorks2012;
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 AdventureWorks2012;
GO
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL
   DROP TRIGGER Sales.bonus_reminder;
GO

Para desabilitar e habilitar 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 instrução CREATE TRIGGER para criar o gatilho Sales.bonus_reminder. Para desabilitar e habilitar o gatilho, execute as instruções DISABLE TRIGGER e ENABLE TRIGGER, respectivamente.

--Create the trigger.
USE AdventureWorks2012;
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 AdventureWorks2012;
GO
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO

--Enable the trigger.
USE AdventureWorks2012;
GO
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO

Ícone de seta usado com o link Voltar ao Início[Top]

Consulte também

Referência

ALTER TRIGGER (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

DROP TRIGGER (Transact-SQL)

ENABLE TRIGGER (Transact-SQL)

DISABLE TRIGGER (Transact-SQL)

EVENTDATA (Transact-SQL)

sp_help (Transact-SQL)

sp_helptrigger (Transact-SQL)

sys.triggers (Transact-SQL)

sys.trigger_events (Transact-SQL)

sys.sql_modules (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)

Conceitos

Obter informações sobre gatilhos DML