Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-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)