DISABLE TRIGGER (Transact-SQL)

  • 05/10/2017
  • 2 minuti per leggere
    • W
    • c
    • r
    • i
    • M
    • +7

Si applica a: SQL Server (tutte le versioni supportate) Azure SQL Database

Disabilita un trigger.

Convenzioni di sintassi Transact-SQL

Sintassi

DISABLE TRIGGER { trigger_name | ALL } ON { object_name | DATABASE | ALL SERVER } 

Nota

Per vedere la sintassi Transact-SQL per SQL Server 2014 e precedenti, vedere la documentazione delle versioni precedenti.

Arguments

schema_name
È il nome dello schema a cui appartiene il trigger. schema_name non può essere specificato per DDL o trigger di logon.

trigger_name
È il nome del trigger da disabilitare.

ALL
Indica che tutti i trigger definiti nell’ambito della clausola ON sono disabilitati.

Caution

QL Server crea trigger nei database che sono pubblicati per la replica merge. Specificando ALL nei database pubblicati si disabilitano questi trigger, il che interrompe la replicazione. Verificare che il database corrente non sia pubblicato per la replica unione prima di specificare ALL.

nome_oggetto
È il nome della tabella o della vista su cui è stato creato il trigger DML trigger_name per essere eseguito.

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

ALL SERVER
Applica a: SQL Server 2008 e successivi.

Per un trigger DDL, indica che trigger_name è stato creato o modificato per essere eseguito con lo scopo del server. ALL SERVER si applica anche ai trigger di logon.

Nota

Questa opzione non è disponibile in un database contenuto.

Riservazioni

I trigger sono abilitati di default quando vengono creati. Disabilitare un trigger non lo fa cadere. Il trigger esiste ancora come oggetto nel database corrente. Tuttavia, il trigger non si attiva quando qualsiasi istruzione Transact-SQL su cui è stato programmato viene eseguita. I trigger possono essere riabilitati usando ENABLE TRIGGER. I trigger DML definiti sulle tabelle possono anche essere disabilitati o abilitati usando ALTER TABLE.

Cambiare il trigger usando l’istruzione ALTER TRIGGER abilita il trigger.

Permissions

Per disabilitare un trigger DML, come minimo, un utente deve avere il permesso ALTER sulla tabella o sulla vista su cui è stato creato il trigger.

Per disabilitare un trigger DDL con portata server (ON ALL SERVER) o un trigger di logon, un utente deve avere il permesso CONTROL SERVER sul server. Per disabilitare un trigger DDL con portata del database (ON DATABASE), come minimo, un utente deve avere il permesso ALTER ANY DATABASE DDL TRIGGER nel database corrente.

Esempi

I seguenti esempi sono descritti nel database AdventureWorks2012.

A. Disabilitare un trigger DML su una tabella

L’esempio seguente disabilita il trigger uAddress che è stato creato sulla tabella Person.

DISABLE TRIGGER Person.uAddress ON Person.Address; GO 

B. Disabilitare un trigger DDL

L’esempio seguente crea un trigger DDL safety con scopo database, e poi lo disabilita.

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 

C. Disabilitare tutti i trigger che sono stati definiti con lo stesso ambito

L’esempio seguente disabilita tutti i trigger DDL che sono stati creati nell’ambito del server.

DISABLE Trigger ALL ON ALL SERVER; GO 

Vedi anche

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.