Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-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)