Megosztás a következőn keresztül:


EJTŐ TRIGGER (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Eltávolít egy vagy több DML vagy DDL triggert a jelenlegi adatbázisból.

Transact-SQL szintaxis konvenciók

Szemantika

-- 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

HA LÉTEZIK
Érvényes: SQL Server (SQL Server 2016 (13.x) a jelenlegi verzióig, SQL Database).

Feltételesen csak akkor engedi el a triggert, ha már létezik.

schema_name
Ez annak a sémának a neve, amelyhez egy DML trigger tartozik. A DML triggerek a táblázat vagy nézet sémájához vannak kötve, amelyen létrehozták őket. schema_name nem lehet megadni DDL vagy bejelentkezési triggerekhez.

trigger_name
A kiváltó neve, amit el kell távolítani. A jelenleg létrehozott triggerek listájának megtekintéséhez használd a sys.server_assembly_modules vagy a sys.server_triggers parancsokat.

DATABASE
Jelzi, hogy a DDL trigger hatóköre a jelenlegi adatbázisra vonatkozik. A DATABASE-t meg kell határozni, ha azt a trigger létrehozásakor vagy módosításakor is megadták.

MINDEN KISZOLGÁLÓ
Az: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.

Jelzi, hogy a DDL trigger hatóköre a jelenlegi szerverre vonatkozik. Az ALL SERVER-t meg kell határozni, ha azt a trigger létrehozásakor vagy módosításakor is meg volt-e jelölve. Az ALL SERVER a bejelentkezési triggerekre is vonatkozik.

Megjegyzés:

Ez az opció nem érhető el egy zárt adatbázisban.

Megjegyzések

Eltávolíthatod a DML triggert azzal, hogy ledobod vagy ledobod a trigger táblát. Ha egy táblázatot eldobnak, az összes kapcsolódó trigger is elkerül.

Amikor egy trigger elhagyatott, a triggerről származó információk eltávolítódnak a sys.objects, sys.triggers és sys.sql_modules katalógus nézetekből.

Több DDL trigger csak akkor lehet elhagyni egy DROP TRIGGER utasítás alatt, ha minden trigger azonos ON záradékokkal készült.

Egy trigger átnevezéséhez használd a DROP TRIGGER és a CREATE TRIGGER opciókat. A trigger definíciójának megváltoztatásához használd az ALTER TRIGGER-t.

További információért egy adott trigger függőségének meghatározásáról lásd a sys.sql_expression_dependencies, sys.dm_sql_referenced_entities (Transact-SQL) és sys.dm_sql_referencing_entities (Transact-SQL) címeket.

További információért a trigger szövegének megtekintéséről lásd a sp_helptext (Transact-SQL) és a sys.sql_modules (Transact-SQL) oldalt.

További információért a meglévő triggerek listájának megtekintéséről lásd a sys.triggers (Transact-SQL) és a sys.server_triggers (Transact-SQL) oldalakat.

Permissions

A DML trigger eldobásához ALTER engedély szükséges azon a táblán vagy nézeten, ahol a trigger meg van határozva.

Egy szerver hatókörrel (ALL SERVEREN) vagy bejelentkezési trigger eldobásához CONTROL SERVER engedély szükséges a szerveren. Egy adatbázis hatókörrel (ON DATABASE) meghatározott DDL trigger elhagyásához szükség van a ALTER ANY DATABASE DDL TRIGGER engedélyre az aktuális adatbázisban.

Példák

A. Egy DML trigger eldobása

A következő példa eltávolítja a employee_insupd triggert az AdventureWorks2025 adatbázisban. (Az SQL Server 2016-tól (13.x) használhatod a DROP TRIGGER IF EXISTS szintaxist.)

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

B. DDL trigger eldobása

A következő példa elhagyja a DDL triggert safety.

Fontos

Mivel a DDL triggerek nem séma-szkábítottak, ezért nem jelennek meg a sys.objects katalógus nézetben, a OBJECT_ID függvény nem használható arra, hogy megkérdezzék, léteznek-e az adatbázisban. Az objektumokat, amelyek nem séma-scope-ban vannak, a megfelelő katalógus nézet segítségével kell lekérdezni. DDL triggerekhez használd a sys.triggers-et.

DROP TRIGGER safety  
ON DATABASE;  

Lásd még:

ALTER TRIGGER (Transact-SQL)
LÉTREHOZNI TRIGGERET (Transact-SQL)
AZ INDÍTÓ ENGEDÉLYEZÉSE (Transact-SQL)
TRIGGER LETILTÁSA (Transact-SQL)
ESEMÉNYADATOK (Transact-SQL)
Információk szerzése a DML-eseményindítókról
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modulok (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)