Megosztás a következőn keresztül:


AKTIVÁLD A TRIGGER (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Engedélyezi a DML, DDL vagy bejelentkezési triggeret.

Transact-SQL szintaxis konvenciók

Szemantika

ENABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }  
ON { object_name | DATABASE | ALL SERVER } [ ; ]  

Arguments

schema_name
Ez annak a sémának a neve, amelyhez a kiváltó kapcsoló. schema_name nem adható meg DDL- vagy bejelentkezési eseményindítókhoz.

trigger_name
A trigger neve be kell kapcsolni?

ALL
Jelzi, hogy az ON záradék hatókörénél meghatározott összes trigger engedélyezett.

object_name
Ez annak a tábla vagy nézetnek a neve, amelyen a DML trigger trigger_name a végrehajtásra készült.

DATABASE
DDL trigger esetén azt jelzi, hogy trigger_name létrehozták vagy módosították, hogy adatbázis hatókörrel hajtson végre.

MINDEN KISZOLGÁLÓ
Az: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.

DDL trigger esetén azt jelzi, hogy trigger_name szerver hatótávolsággal készült vagy módosított volt. Az ALL SERVER a bejelentkezési triggerekre is vonatkozik.

Megjegyzés:

Ez az opció nem érhető el egy zárt adatbázisban.

Megjegyzések

Ha engedélyezzük a triggert, nem hozza újra létre. Egy letiltott trigger továbbra is létezik objektumként a jelenlegi adatbázisban, de nem aktiválódik. Ha engedélyezzük a triggeret, akkor aktiválódik, amikor az eredeti programozott Transact-SQL utasításokat futtatják. A triggereket a DISABLE TRIGGER használatával lehet letiltani. A táblákon definiált DML triggerek szintén letilthatók vagy engedélyezhetők az ALTER TABLE használatával.

Permissions

A DML trigger engedélyezéséhez legalábbis a felhasználónak ALTER engedélyre van szüksége azon a táblán vagy nézeten, ahol a trigger létrejött.

Ahhoz, hogy DDL trigger szerver hatótávú (ALL SERVEREN) vagy bejelentkezési trigger engedélyezze, a felhasználónak CONTROL SERVER engedélyre van szüksége a szerveren. Egy DDL trigger engedélyezéséhez adatbázis hatókörrel (ON DATABASE) legalábbis a felhasználónak ALTER ANY DATABASE DDL TRIGGER engedélyt kell a jelenlegi adatbázisban.

Példák

A. DML trigger engedélyezése egy táblán

A következő példa letiltja az AdventureWorks adatbázisban a táblán Address létrehozott triggeretuAddress, majd engedélyezi.

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

B. DDL trigger engedélyezése

A következő példa létrehoz egy DDL triggeret safety adatbázis hatókörrel, majd letiltja és engedélyezi.

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. Minden trigger engedélyezése, amely ugyanazzal a hatókörrel volt meghatározva.

A következő példa lehetővé teszi az összes szerver hatókörben létrehozott DDL triggert.

Az: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.

ENABLE Trigger ALL ON ALL SERVER;  
GO  

Lásd még:

TRIGGER LETILTÁSA (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
LÉTREHOZNI TRIGGERET (Transact-SQL)
EJTŐ TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)