Delen via


TRIGGER INSCHAKELEN (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Schakelt een DML-, DDL- of logon-trigger in.

Transact-SQL syntaxis-conventies

Syntaxis

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

Arguments

schema_name
Is de naam van het schema waartoe de trigger behoort. schema_name kan niet worden opgegeven voor DDL- of aanmeldingstriggers.

trigger_name
Is de naam van de trigger die ingeschakeld moet worden?

ALL
Geeft aan dat alle triggers gedefinieerd in de scope van de ON-clausule zijn ingeschakeld.

object_name
Is de naam van de tabel of weergave waarop de DML-trigger trigger_name is aangemaakt om uit te voeren?

DATABASE
Voor een DDL-trigger geeft aan dat trigger_name is aangemaakt of aangepast om met databasescope uit te voeren.

ALLE SERVER
van toepassing op: SQL Server 2008 (10.0.x) en hoger.

Voor een DDL-trigger geeft aan dat trigger_name is aangemaakt of aangepast om met serverscope uit te voeren. ALL SERVER geldt ook voor logon-triggers.

Opmerking

Deze optie is niet beschikbaar in een besloten database.

Opmerkingen

Het inschakelen van een trigger maakt deze niet opnieuw aan. Een uitgeschakelde trigger bestaat nog steeds als object in de huidige database, maar activeert niet. Om een trigger in te schakelen, wordt deze geactiveerd wanneer een Transact-SQL statements waarop het oorspronkelijk geprogrammeerd was, worden uitgevoerd. Triggers worden uitgeschakeld door DISABLE TRIGGER te gebruiken. DML-triggers die op tabellen zijn gedefinieerd, kunnen ook worden uitgeschakeld of ingeschakeld door gebruik te maken van ALTER TABLE.

Permissions

Om een DML-trigger in te schakelen, heeft een gebruiker minimaal de ALTER-toestemming nodig voor de tabel of weergave waarop de trigger is gemaakt.

Om een DDL-trigger met serverscope (OP ALLE SERVER) of een logon-trigger in te schakelen, heeft een gebruiker CONTROL SERVER-toestemming nodig op de server. Om een DDL-trigger met databasescope (ON DATABASE) in te schakelen, heeft een gebruiker minimaal de toestemming ALTER ANY DATABASE DDL TRIGGER nodig in de huidige database.

Voorbeelden

Eén. Een DML-trigger inschakelen op een tabel

Het volgende voorbeeld schakelt de trigger uAddress uit die in een tabel Address in de AdventureWorks-database is aangemaakt en schakelt deze vervolgens in.

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

B. Een DDL-trigger inschakelen

Het volgende voorbeeld creëert een DDL-trigger safety met databasescope, schakelt deze vervolgens uit en schakelt deze in.

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. Alle triggers inschakelen die met dezelfde scope waren gedefinieerd

Het volgende voorbeeld maakt alle DDL-triggers mogelijk die op de serverscope zijn aangemaakt.

van toepassing op: SQL Server 2008 (10.0.x) en hoger.

ENABLE Trigger ALL ON ALL SERVER;  
GO  

Zie ook

TRIGGER UITSCHAKELEN (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
MAAK TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)