Condividi tramite


ENABLE TRIGGER (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure

Abilita un trigger DML, DDL o LOGON.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

ENABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }  
ON { object_name | DATABASE | ALL SERVER } [ ; ]  

Argomenti

schema_name
Nome dello schema a cui appartiene il trigger. schema_name non può essere specificato per i trigger DDL o LOGON.

trigger_name
Nome del trigger da abilitare.

ALL
Indica che vengono abilitati tutti i trigger definiti nell'ambito della clausola ON.

object_name
Nome della tabella o della vista su cui deve essere eseguito il trigger DML trigger_name.

DATABASE
Per un trigger DDL, indica che trigger_name è stato creato o modificato per essere eseguito con ambito database.

ALL SERVER
Si applica a: SQL Server 2008 (10.0.x) e versioni successive.

Per un trigger DDL, indica che trigger_name è stato creato o modificato per essere eseguito con ambito server. ALL SERVER si applica anche ai trigger LOGON.

Nota

Questa opzione non è disponibile in un database indipendente.

Osservazioni:

L'abilitazione di un trigger non comporta la sua creazione ex-novo. Un trigger disabilitato continua a esistere come oggetto nel database corrente, ma non viene attivato. Se si abilita un trigger, questo verrà attivato ogni volta che vengono eseguite istruzioni Transact-SQL per le quali è stato programmato in origine. I trigger vengono disabilitati tramite DISABLE TRIGGER. I trigger DML definiti su tabelle possono essere disabilitati o abilitati anche tramite ALTER TABLE.

Autorizzazioni

Per abilitare un trigger DML, un utente deve avere almeno l'autorizzazione ALTER per la tabella o vista in base alla quale il trigger è stato creato.

Per abilitare un trigger DDL con ambito server (ON ALL SERVER) o un trigger LOGON, un utente deve avere l'autorizzazione CONTROL SERVER per il server. Per abilitare un trigger DDL nell'ambito del database (ON DATABASE), un utente deve avere almeno l'autorizzazione ALTER ANY DATABASE DDL TRIGGER nel database corrente.

Esempi

R. Abilitazione di un trigger DML in una tabella

Nell'esempio seguente il trigger uAddress creato nella tabella Address del database AdventureWorks viene disabilitato e quindi abilitato.

DISABLE TRIGGER Person.uAddress ON Person.Address;  
GO  
ENABLE Trigger Person.uAddress ON Person.Address;  
GO  

B. Abilitazione di un trigger DDL

Nell'esempio seguente viene creato un trigger DDL safety con ambito database, che viene quindi disabilitato e poi abilitato.

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. Abilitazione di tutti i trigger definiti nello stesso ambito

Nell'esempio seguente vengono abilitati tutti i trigger DDL creati nell'ambito del server.

Si applica a: SQL Server 2008 (10.0.x) e versioni successive.

ENABLE Trigger ALL ON ALL SERVER;  
GO  

Vedi anche

DISABLE TRIGGER (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)