Sdílet prostřednictvím


VYPNOUT TRIGGER (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vypíná spouštěč.

Transact-SQL konvence syntaxe

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)