Delen via


TRIGGER UITSCHAKELEN (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-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)