Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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)