Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Inaktiverar en trigger.
Transact-SQL syntaxkonventioner
Syntax
DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
Arguments
schema_name
Är namnet på schemat som triggern tillhör.
schema_name kan inte specificeras för DDL- eller inloggningstriggers.
trigger_name
Är namnet på utlösaren som ska inaktiveras.
ALL
Indikerar att alla triggers definierade inom ON-klausulens omfattning är inaktiverade.
Försiktighet
SQL Server skapar triggers i databaser som publiceras för sammanslagningsreplikering. Att specificera ALLT i publicerade databaser inaktiverar dessa triggers, vilket stör replikeringen. Verifiera att den aktuella databasen inte är publicerad för sammanslagningsreplikering innan du specificerar ALL.
object_name
Är namnet på tabellen eller vyn där DML-triggern trigger_name skapades för att köras.
DATABAS
För en DDL-trigger indikerar att trigger_name skapades eller modifierades för att köras med databasomfattning.
ALLA SERVRAR
gäller för: SQL Server 2008 (10.0.x) och senare.
För en DDL-trigger indikerar att trigger_name skapades eller modifierades för att köras med serveromfång. ALL SERVER gäller också för inloggningstriggers.
Anmärkning
Detta alternativ finns inte tillgängligt i en innehållen databas.
Anmärkningar
Triggers är aktiverade som standard när de skapas. Att inaktivera en utlösare tar inte bort den. Utlösaren finns fortfarande som ett objekt i den aktuella databasen. Dock aktiveras inte triggern när några Transact-SQL satser som den programmerades på körs. Triggers kan aktiveras igen genom att använda ENABLE TRIGGER. DML-triggers definierade på tabeller kan också inaktiveras eller aktiveras genom att använda ALTER TABLE.
Att ändra triggern med ALTER TRIGGER-satsen aktiverar triggern.
Permissions
För att inaktivera en DML-trigger måste en användare minst ha ALTER-behörighet på tabellen eller vyn där triggern skapades.
För att inaktivera en DDL-trigger med serveromfång (PÅ ALLA SERVRAR) eller en inloggningsutlösare måste en användare ha CONTROL SERVER-behörighet på servern. För att inaktivera en DDL-trigger med databasomfattning (ON DATABASE) måste en användare minst ha behörighet ÄNDRA VILKEN DATABAS DDL-TRIGGER som helst i den aktuella databasen.
Examples
Kodexemplen i den här artikeln använder AdventureWorks2025- eller AdventureWorksDW2025-exempeldatabasen, som du kan ladda ned från startsidan Microsoft SQL Server Samples och Community Projects.
A. Att inaktivera en DML-trigger på ett bord
Följande exempel inaktiverar triggern uAddress som skapades på tabell Person.
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
B. Inaktivera en DDL-trigger
Följande exempel skapar en DDL-trigger safety med databasomfattning och inaktiverar den sedan.
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. Inaktiverade alla triggers som var definierade med samma omfattning
Följande exempel inaktiverar alla DDL-triggers som skapades i serverns omfattning.
DISABLE Trigger ALL ON ALL SERVER;
GO
Se även
AKTIVERA UTLÖSARE (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
SKAPA UTLÖSARE (Transact-SQL)
DROP TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)