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 trigger uit.
Transact-SQL syntaxis-conventies
Syntaxis
DISABLE 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 gespecificeerd voor DDL- of logontriggers.
trigger_name
Is de naam van de trigger die uitgeschakeld moet worden?
ALL
Geeft aan dat alle triggers die in de scope van de ON-clausule zijn gedefinieerd, zijn uitgeschakeld.
Waarschuwing
SQL Server creëert triggers in databases die worden gepubliceerd voor merge-replicatie. Het specificeren van ALLES in gepubliceerde databases schakelt deze triggers uit, wat de replicatie verstoort. Controleer of de huidige database niet is gepubliceerd voor merge-replicatie voordat je ALL specificeert.
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
Triggers zijn standaard ingeschakeld wanneer ze worden aangemaakt. Als u een trigger uitschakelt, wordt deze niet verwijderd. De trigger bestaat nog steeds als een object in de huidige database. De trigger activeert echter niet wanneer een Transact-SQL instructies waarop deze is geprogrammeerd worden uitgevoerd. Triggers kunnen opnieuw worden ingeschakeld door ENABLE TRIGGER te gebruiken. DML-triggers die op tabellen zijn gedefinieerd, kunnen ook worden uitgeschakeld of ingeschakeld door gebruik te maken van ALTER TABLE.
Door de trigger te wijzigen met de ALTER TRIGGER-instructie wordt de trigger ingeschakeld.
Permissions
Om een DML-trigger uit te schakelen, moet een gebruiker minimaal ALTER-toestemming hebben op de tabel of weergave waarop de trigger is aangemaakt.
Om een DDL-trigger met serverscope (OP ALLE SERVEREN) of een logon-trigger uit te schakelen, moet een gebruiker CONTROL SERVER-toestemming op de server hebben. Om een DDL-trigger met databasescope (ON DATABASE) uit te schakelen, moet een gebruiker minimaal de toestemming hebben ALTER ANY DATABASE DDL TRIGGER in de huidige database.
Voorbeelden
De codevoorbeelden in dit artikel gebruiken de AdventureWorks2025 of AdventureWorksDW2025 voorbeelddatabase die u kunt downloaden van de startpagina van Microsoft SQL Server Samples en Community Projects .
Eén. Het uitschakelen van een DML-trigger op een tafel
Het volgende voorbeeld schakelt de trigger uAddress uit die op tabel Personis aangemaakt.
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
B. Een DDL-trigger uitschakelen
Het volgende voorbeeld maakt een DDL-trigger safety met databasescope aan en schakelt deze vervolgens uit.
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. Alle triggers die met dezelfde scope waren gedefinieerd, worden uitgeschakeld
Het volgende voorbeeld schakelt alle DDL-triggers uit die op de serverscope zijn aangemaakt.
DISABLE Trigger ALL ON ALL SERVER;
GO
Zie ook
TRIGGER INSCHAKELEN (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
MAAK TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)