Sdílet prostřednictvím


POVOLIT SPOUŠTĚČ (Transact-SQL)

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

Umožňuje spustit DML, DDL nebo přihlášení.

Transact-SQL konvence syntaxe

Syntaxe

ENABLE 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 zadat pro triggery DDL ani přihlášení.

trigger_name
Je název spouště, která má být povolena?

ALL
Označuje, že všechny spouštěče definované v rozsahu klauzule ON jsou povoleny.

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

Zapnutí triggeru ho neobnoví. Aktivovaný trigger stále existuje jako objekt v aktuální databázi, ale nespouští se. Pro povolení spouštěče se spustí, když se spustí Transact-SQL příkazy, na kterých byl původně naprogramován. Spouštěče jsou deaktivovány pomocí DISABLE TRIGGER. DML spouštěče definované v tabulkách lze také vypnout nebo povolit pomocí ALTER TABLE.

Povolení

Pro povolení DML spouštěče uživatel minimálně potřebuje ALTER oprávnění k tabulce nebo pohledu, ve kterém byl spouštěč vytvořen.

Pro povolení DDL triggeru s rozsahem serveru (NA VŠECH SERVERECH) nebo spouštěčem přihlášení uživatel potřebuje oprávnění CONTROL SERVER na serveru. Pro povolení DDL triggeru s databázovým rozsahem (ON DATABASE) musí uživatel minimálně ZMĚNIT JAKÉKOLI OPRÁVNĚNÍ DDL TRIGGER databáze v aktuální databázi.

Examples

A. Povolení DML triggeru na tabulce

Následující příklad deaktivuje spouštěč uAddress , který byl vytvořen v tabulce Address v databázi AdventureWorks, a poté jej aktivuje.

DISABLE TRIGGER Person.uAddress ON Person.Address;  
GO  
ENABLE Trigger Person.uAddress ON Person.Address;  
GO  

B. Povolení DDL spouštěče

Následující příklad vytváří DDL trigger safety s databázovým rozsahem, poté jej deaktivuje a povoluje.

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  
ENABLE TRIGGER safety ON DATABASE;  
GO  

C. Povolit všechny spouštěče, které byly definovány se stejným rozsahem

Následující příklad umožňuje všechny DDL triggery, které byly vytvořeny v rozsahu serveru.

platí pro: SQL Server 2008 (10.0.x) a novější.

ENABLE Trigger ALL ON ALL SERVER;  
GO  

Viz také

ZAKÁZAT TRIGGER (Transact-SQL)
ALTEROVÁ SPOUŠŤ (Transact-SQL)
VYTVOŘIT SPOUŠŤ (Transact-SQL)
ODSTRANIT TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)