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
Vypíná spouštěč.
Syntaxe
DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
Arguments
schema_name
Je název schématu, ke kterému spouštěč patří.
schema_name nelze specifikovat pro DDL nebo spouštěče přihlášení.
trigger_name
Je název spouštěče, která má být deaktivována.
ALL
Označuje, že všechny spouštěče definované v rámci klauzule ON jsou deaktivovány.
Upozornění
SQL Server vytváří triggery v databázích, které jsou publikovány pro replikaci merge. Specifikace ALL v publikovaných databázích tyto spouštěče deaktivuje, což narušuje replikaci. Ověřte, že aktuální databáze není publikována pro replikaci při sloučení, než specifikujete VŠE.
object_name
Je název tabulky nebo pohledu, na kterém byl DML trigger vytvořen trigger_name pro vykonání.
DATABASE
Pro DDL trigger označuje, že trigger_name byl vytvořen nebo upraven pro spuštění v databázovém rozsahu.
ALL SERVER
platí pro: SQL Server 2008 (10.0.x) a novější.
Pro DDL trigger označuje, že trigger_name byl vytvořen nebo upraven pro spuštění se serverovým rozsahem. 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
Spouštěče jsou ve výchozím nastavení zapnuté při jejich vytvoření. Zakázání triggeru ho nezahodí. Trigger stále existuje jako objekt v aktuální databázi. Spouštěč se však nespouští, když jsou vykonány Transact-SQL příkazy, na kterých byl naprogramován. Spouštěče lze znovu povolit pomocí POVOLIT SPOUŠTĚČ. DML spouštěče definované v tabulkách lze také deaktivovat nebo povolit pomocí ALTER TABLE.
Změna triggeru pomocí příkazu ALTER TRIGGER aktivuje trigger.
Povolení
Pro deaktivaci DML triggeru musí mít uživatel minimálně ALTER oprávnění k tabulce nebo zobrazení, kde byl trigger vytvořen.
Pro deaktivaci DDL spouštěče se serverovým rozsahem (NA VŠECH SERVERECH) nebo s přihlášením musí mít uživatel oprávnění CONTROL SERVER na serveru. Pro deaktivaci DDL triggeru s databázovým rozsahem (ON DATABASE) musí mít uživatel minimálně oprávnění ZMĚNIT JAKÉKOLI DDL TRIGGER databáze v aktuální databázi.
Examples
Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2025 nebo AdventureWorksDW2025, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty .
A. Vypnutí DML spouštěče na stole
Následující příklad deaktivuje spouštěč uAddress , který byl vytvořen v tabulce Person.
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
B. Vypnutí DDL spouště
Následující příklad vytváří DDL trigger safety s databázovým rozsahem a poté jej deaktivuje.
CREATE TRIGGER safety
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT 'You must disable Trigger "safety" to drop or alter tables!'
ROLLBACK;
GO
DISABLE TRIGGER safety ON DATABASE;
GO
C. Vypnutí všech spouštěčů, které byly definovány se stejným rozsahem
Následující příklad deaktivuje všechny DDL spouštěče vytvořené v rozsahu serveru.
DISABLE Trigger ALL ON ALL SERVER;
GO
Viz také
Povolení triggeru (Transact-SQL)
ALTEROVÁ SPOUŠŤ (Transact-SQL)
VYTVOŘIT SPOUŠŤ (Transact-SQL)
ODSTRANIT TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)