Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Odstraní jeden nebo více spouštěčů DML nebo DDL z aktuální databáze.
Syntaxe
-- 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
POKUD EXISTUJE
Platí na: SQL Server (SQL Server 2016 (13.x) až po současnou verzi, SQL Database).
Podmíněně spouštěč zruší jen pokud už existuje.
schema_name
Je název schématu, ke kterému DML trigger patří. DML triggery jsou omezeny na schéma tabulky nebo pohledu, na kterém jsou vytvořeny.
schema_name nelze specifikovat pro DDL nebo spouštěče přihlášení.
trigger_name
Je název spouště, kterou je třeba odstranit. Pro zobrazení seznamu aktuálně vytvořených spouštěčů použijte sys.server_assembly_modules nebo sys.server_triggers.
DATABASE
Označuje, že rozsah DDL triggeru se vztahuje na aktuální databázi. DATABASE musí být specifikováno, pokud bylo také specifikováno při vytvoření nebo úpravě spouštěče.
ALL SERVER
platí pro: SQL Server 2008 (10.0.x) a novější.
Označuje, že rozsah DDL triggeru se vztahuje na aktuální server. ALL SERVER musí být specifikován, pokud byl také specifikován při vytvoření nebo úpravě spouštěče. ALL SERVER se také vztahuje na spouštěče přihlášení.
Poznámka:
Tato možnost není dostupná v uzavřené databázi.
Poznámky
DML spouštěč můžete odstranit tím, že ho vypustíte, nebo spuštěním spouštěcí tabulky. Když je tabulka vypuštěna, všechny související spouštěče jsou také odstraněny.
Když je trigger vypuštěn, informace o triggeru jsou odstraněny z katalogů sys.objects, sys.triggers a sys.sql_modules .
Více DDL spouštěčů lze vyřadit na jeden příkaz DROP TRIGGER pouze tehdy, pokud byly všechny spouštěče vytvořeny pomocí identických ON klauzl.
Pro přejmenování triggeru použijte DROP TRIGGER a CREATE TRIGGER. Pro změnu definice spouštěče použijte ALTER TRIGGER.
Pro více informací o určování závislostí pro konkrétní spouštěč viz sys.sql_expression_dependencies, sys.dm_sql_referenced_entities (Transact-SQL) a sys.dm_sql_referencing_entities (Transact-SQL).
Pro více informací o zobrazení textu triggeru viz sp_helptext (Transact-SQL ) a sys.sql_modules (Transact-SQL).
Pro více informací o zobrazení seznamu existujících spouštěčů viz sys.triggers (Transact-SQL) a sys.server_triggers (Transact-SQL).
Povolení
Pro vypuštění DML spouštěče je potřeba ALTER povolení k tabulce nebo zobrazení, kde je spouštěč definován.
Pro odstranění DDL triggeru definovaného s rozsahem serveru (NA VŠECH SERVERECH) nebo pro přihlášení je potřeba oprávnění CONTROL SERVER na serveru. Pro odstranění DDL triggeru definovaného s databázovým rozsahem (ON DATABASE) je potřeba ZMĚNIT LIBOVOLNÉ POVOLENÍ DATABASE DDL v aktuální databázi.
Examples
A. Vypuštění DML spouštěče
Následující příklad ukládá employee_insupd spouštěč do databáze AdventureWorks2025. (Od SQL Server 2016 (13.x) můžete použít syntaxi DROP TRIGGER, POKUD EXISTUJE.)
IF OBJECT_ID ('employee_insupd', 'TR') IS NOT NULL
DROP TRIGGER employee_insupd;
B. Upuštění spouště DDL
Následující příklad vyrušuje DDL trigger safety.
Důležité
Protože DDL triggery nejsou schématově omezené a proto se neobjevují v katalogu sys.objects , nelze funkci OBJECT_ID použít k dotazování, zda v databázi existují. Objekty, které nejsou schema-scoped, musí být dotazovány pomocí příslušného katalogového pohledu. Pro DDL triggery použijte sys.triggers.
DROP TRIGGER safety
ON DATABASE;
Viz také
ALTEROVÁ SPOUŠŤ (Transact-SQL)
VYTVOŘIT SPOUŠŤ (Transact-SQL)
Povolení triggeru (Transact-SQL)
ZAKÁZAT TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
Získejte informace o triggerech DML
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (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)