Partilhar via


ATIVAR TRIGGER (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase 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)