Modificar ou renomear gatilhos DML

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

Neste tópico

  • Antes de começar:

    Limitações e restrições

    Recomendações

    Segurança

  • Para modificar ou renomear um gatilho DML usando:

    SQL Server Management Studio

    Transact-SQL

Antes de começar

Limitações e restrições

  • Quando você renomeia um gatilho, o gatilho deve estar no banco de dados atual e o novo nome deve seguir as regras para identificadores.

Recomendações

  • Nós recomendamos que você não use o procedimento armazenado sp_rename para renomear um gatilho. A alteração de qualquer parte de um nome de objeto pode quebrar scripts e procedimentos armazenados. Renomear um gatilho não altera o nome do objeto correspondente na coluna de definição da exibição de catálogo sys.sql_modules. Nós recomendamos que você remova e recrie o gatilho.

  • Se você alterar o nome de um objeto referenciado por um gatilho DML, é preciso modificar o gatilho para que seu texto reflita o novo nome. Portanto, antes de renomear um objeto, exiba primeiramente as dependências do objeto para determinar se algum gatilho foi afetado pela mudança proposta.

  • Um gatilho DML também pode ser modificado para criptografar sua definição.

  • Para exibir as dependências de um gatilho, você pode usar o SQL Server Management Studio ou a função e as exibições de catálogo a seguir:

Segurança

Permissões

A alteração de um gatilho DML exige permissão ALTER na tabela ou exibição na qual o gatilho está definido.

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

Usando o SQL Server Management Studio

Para modificar 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 modificar.

  3. Expanda Gatilhos, clique com o botão direito no gatilho a ser modificado e clique em Modificar.

  4. Modifique o gatilho e clique em Executar.

Para renomear um gatilho DML

  1. Exclua o gatilho que você deseja renomear.

  2. Recrie o gatilho, especificando o novo nome.

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

Usando Transact-SQL

Para modificar um gatilho usando ALTER TRIGGER

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

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

  3. Copie e cole os seguintes exemplos na consulta. Execute o primeiro exemplo para criar um gatilho DML que imprime uma mensagem definida pelo usuário para o cliente quando um usuário tenta adicionar ou alterar dados na tabela SalesPersonQuotaHistory. Execute a instrução ALTER TRIGGER para modificar o gatilho a ser disparado apenas nas atividades INSERT. Esse gatilho é útil porque lembra ao usuário que atualiza ou insere linhas nessa tabela que também notifique o departamento Compensation.

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

USE AdventureWorks2012;
GO
ALTER TRIGGER Sales.bonus_reminder
ON Sales.SalesPersonQuotaHistory
AFTER INSERT
AS RAISERROR ('Notify Compensation', 16, 10);
GO

Para renomear um gatilho usando DROP TRIGGER e ALTER TRIGGER

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

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

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar. Este exemplo usa as instruções DROP TRIGGER e ALTER TRIGGER para renomear o gatilho Sales.bonus_reminder como Sales.bonus_reminder_2.

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_2
ON Sales.SalesPersonQuotaHistory
WITH ENCRYPTION
AFTER INSERT, UPDATE 
AS RAISERROR ('Notify Compensation', 16, 10);
GO

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

Consulte também

Referência

CREATE TRIGGER (Transact-SQL)

DROP TRIGGER (Transact-SQL)

ENABLE TRIGGER (Transact-SQL)

DISABLE TRIGGER (Transact-SQL)

EVENTDATA (Transact-SQL)

sp_rename (Transact-SQL)

ALTER TRIGGER (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