Condividi tramite


DROP TRIGGER (Transact-SQL)

Rimuove uno o più trigger DML, DDL o LOGON dal database corrente.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)
DROP TRIGGER schema_name.trigger_name [ ,...n ] [ ; ]

Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE or UPDATE statement (DDL Trigger)
DROP TRIGGER trigger_name [ ,...n ] 
ON { DATABASE | ALL SERVER } 
[ ; ]

Trigger on a LOGON event (Logon Trigger)

DROP TRIGGER trigger_name [ ,...n ] 
ON ALL SERVER 

Argomenti

  • schema_name
    Nome dello schema a cui appartiene un trigger DML. I trigger DML sono definiti a livello di ambito di schema della tabella o della vista in cui vengono creati. Non è possibile specificare schema_name per i trigger DDL o LOGON.
  • trigger_name
    Nome del trigger da rimuovere. Per visualizzare un elenco dei trigger disponibili, utilizzare sys.triggers (Transact-SQL).
  • DATABASE
    Indica che l'ambito del trigger DDL corrisponde al database corrente. È necessario specificare DATABASE se tale argomento è stato specificato anche al momento della creazione o della modifica del trigger.
  • ALL SERVER
    Indica che l'ambito del trigger DDL o LOGON corrisponde al server corrente. È necessario specificare ALL SERVER se tale valore è stato specificato anche al momento della creazione o della modifica del trigger.

Osservazioni

È possibile rimuovere un trigger DML eliminando il trigger stesso o la tabella di trigger corrispondente. Quando si elimina una tabella, vengono eliminati anche tutti i trigger associati.

Se si elimina un trigger, le informazioni relative al trigger vengono rimosse dalle viste del catalogo sys.objects, sys.triggers e sys.sql_modules.

È possibile eliminare più trigger DDL con una singola istruzione DROP TRIGGER solo se tutti i trigger sono stati creati con clausole ON identiche.

Per rinominare un trigger, utilizzare le istruzioni DROP TRIGGER e CREATE TRIGGER. Per modificare la definizione di un trigger, utilizzare ALTER TRIGGER.

Per ulteriori informazioni sulla determinazione delle dipendenze per un trigger specifico, vedere sp_depends (Transact-SQL) e sys.sql_dependencies (Transact-SQL).

Per ulteriori informazioni sulla visualizzazione del testo del trigger, vedere sp_helptext (Transact-SQL) e sys.sql_modules (Transact-SQL).

Per ulteriori informazioni sulla visualizzazione di un elenco dei trigger esistenti, vedere sys.triggers (Transact-SQL) e sys.server_triggers.

Autorizzazioni

Per l'eliminazione di un trigger DML è richiesta l'autorizzazione ALTER per la tabella o la vista in cui è definito il trigger.

Per eliminare un trigger DDL definito con ambito server (ON ALL SERVER) o un trigger LOGON è necessaria l'autorizzazione CONTROL SERVER nel server. Per l'eliminazione di un trigger DDL con ambito database (ON DATABASE) è richiesta l'autorizzazione ALTER ANY DATABASE DDL TRIGGER nel database corrente.

Esempi

A. Eliminazione di un trigger DML

Nell'esempio seguente viene eliminato il trigger employee_insupd.

USE AdventureWorks;
GO
IF OBJECT_ID ('employee_insupd', 'TR') IS NOT NULL
   DROP TRIGGER employee_insupd;
GO

B. Eliminazione di un trigger DDL

Nell'esempio seguente viene eliminato il trigger DDL safety.

ms173497.note(it-it,SQL.90).gifImportante:
Poiché i trigger DDL non hanno ambito schema e pertanto non sono inclusi nella vista del catalogo sys.objects, non è possibile utilizzare la funzione OBJECT_ID per eseguire una query per scoprire se esistono nel database. Per gli oggetti che non hanno ambito schema è necessario eseguire query nella vista del catalogo appropriata. Per i trigger DDL, utilizzare la vista sys.triggers.
USE AdventureWorks;
GO
IF EXISTS (SELECT * FROM sys.triggers
    WHERE parent_class = 0 AND name = 'safety')
DROP TRIGGER safety
ON DATABASE;
GO

Vedere anche

Riferimento

ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
ENABLE TRIGGER (Transact-SQL)
DISABLE TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.objects (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers
sys.server_trigger_events
sys.server_sql_modules
sys.server_assembly_modules (Transact-SQL)

Altre risorse

Informazioni sui trigger DML
Informazioni sui trigger DDL

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

12 dicembre 2006

Nuovo contenuto
  • Aggiunta di informazioni sulla sintassi e le autorizzazioni per i trigger LOGON introdotti in Service Pack 2.