SLÄPP-TRIGGER (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Tar bort en eller flera DML- eller DDL-triggers från den aktuella databasen.

Transact-SQL syntaxkonventioner

Syntax

-- Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)  
  
DROP TRIGGER [ IF EXISTS ] [schema_name.]trigger_name [ ,...n ] [ ; ]  
  
-- Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE or UPDATE statement (DDL Trigger)  
  
DROP TRIGGER [ IF EXISTS ] trigger_name [ ,...n ]   
ON { DATABASE | ALL SERVER }   
[ ; ]  
  
-- Trigger on a LOGON event (Logon Trigger)  
  
DROP TRIGGER [ IF EXISTS ] trigger_name [ ,...n ]   
ON ALL SERVER  

Arguments

OM DET FINNS
Gäller för: SQL Server (SQL Server 2016 (13.x) till nuvarande version, SQL Database).

Triggern tas villkorligt bort endast om den redan finns.

schema_name
Är namnet på schemat som en DML-trigger tillhör. DML-triggers är begränsade till schemat i tabellen eller vyn där de skapas. schema_name kan inte specificeras för DDL- eller inloggningstriggers.

trigger_name
Är namnet på utlösaren som ska tas bort. För att se en lista över för närvarande skapade triggers, använd sys.server_assembly_modules eller sys.server_triggers.

DATABAS
Indikerar att omfattningen av DDL-triggern gäller för den aktuella databasen. DATABASE måste specificeras om den också angavs när triggern skapades eller modifierades.

ALLA SERVRAR
gäller för: SQL Server 2008 (10.0.x) och senare.

Indikerar att omfattningen av DDL-triggern gäller för den aktuella servern. ALL SERVER måste specificeras om den också angavs när triggern skapades eller modifierades. ALL SERVER gäller också för inloggningstriggers.

Anmärkning

Detta alternativ finns inte tillgängligt i en innehållen databas.

Anmärkningar

Du kan ta bort en DML-trigger genom att släppa den eller genom att ta bort triggertabellen. När en tabell tas bort tas även alla tillhörande triggers bort.

När en trigger släpps tas information om triggern bort från sys.objects, sys.triggers och sys.sql_modules katalogvyer.

Flera DDL-triggers kan släppas per DROP TRIGGER-sats endast om alla triggers har skapats med identiska ON-klausuler.

För att byta namn på en trigger, använd DROP TRIGGER och CREATE TRIGGER. För att ändra definitionen av en trigger, använd ALTER TRIGGER.

För mer information om hur man bestämmer beroenden för en specifik trigger, se sys.sql_expression_dependencies, sys.dm_sql_referenced_entities (Transact-SQL) och sys.dm_sql_referencing_entities (Transact-SQL).

För mer information om hur man kan se texten i triggern, se sp_helptext (Transact-SQL) ochsys.sql_modules (Transact-SQL).

För mer information om att se en lista över befintliga triggers, se sys.triggers (Transact-SQL) och sys.server_triggers (Transact-SQL).

Permissions

För att släppa en DML-trigger krävs ALTER-behörighet på tabellen eller vyn där triggern är definierad.

För att släppa en DDL-trigger definierad med serveromfång (PÅ ALLA SERVRAR) eller en inloggningsutlösare krävs CONTROL SERVER-behörighet i servern. För att släppa en DDL-trigger definierad med databasomfattning (ON DATABASE) krävs behörighet ÄNDRA ANY DATABASE DDL TRIGGER i den aktuella databasen.

Examples

A. Att tappa en DML-trigger

Följande exempel släpper triggern employee_insupd i AdventureWorks2025-databasen. (Från och med SQL Server 2016 (13.x) kan du använda syntaxen DROP TRIGGER IF EXIST.)

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

B. Att tappa en DDL-trigger

Följande exempel släpper DDL-triggern safety.

Viktigt!

Eftersom DDL-triggers inte är schema-scoped och därför inte visas i sys.objects-katalogvyn , kan OBJECT_ID-funktionen inte användas för att fråga om de finns i databasen. Objekt som inte är schema-scoped måste förfrågas med lämplig katalogvy. För DDL-triggers, använd sys.triggers.

DROP TRIGGER safety  
ON DATABASE;  

Se även

ALTER TRIGGER (Transact-SQL)
SKAPA UTLÖSARE (Transact-SQL)
AKTIVERA UTLÖSARE (Transact-SQL)
INAKTIVERA UTLÖSARE (Transact-SQL)
HÄNDELSEDATA (Transact-SQL)
Hämta information om DML-trigger
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_moduler (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)