AKTIVERA TRIGGER (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Aktiverar en DML-, DDL- eller inloggningstrigger.

Transact-SQL syntaxkonventioner

Syntax

ENABLE 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 anges för DDL- eller inloggningsutlösare.

trigger_name
Är namnet på triggern som ska aktiveras?

ALL
Indikerar att alla triggers definierade vid omfattningen av ON-klausulen är aktiverade.

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

Att aktivera en trigger återskapar den inte. En inaktiverad trigger finns fortfarande som ett objekt i den aktuella databasen, men aktiveras inte. För att aktivera en trigger aktiveras den när några Transact-SQL satser som den ursprungligen programmerades på körs. Triggers inaktiveras genom att använda DISABLE TRIGGER. DML-triggers definierade på tabeller kan också inaktiveras eller aktiveras genom att använda ALTER TABLE.

Permissions

För att aktivera en DML-trigger behöver användaren minst ALTER-behörighet på tabellen eller vyn där triggern skapades.

För att aktivera en DDL-trigger med serveromfång (PÅ ALLA SERVRAR) eller en inloggningsutlösare behöver användaren CONTROL SERVER-behörighet på servern. För att aktivera en DDL-trigger med databasomfattning (ON DATABASE) behöver användaren minst tillstånd ÄNDRA VILKEN DATABAS DDL-TRIGGER som möjligt i den aktuella databasen.

Examples

A. Aktivering av en DML-trigger på en tabell

Följande exempel inaktiverar en utlösare uAddress som skapades i en tabell Address i AdventureWorks-databasen och aktiverar den sedan.

DISABLE TRIGGER Person.uAddress ON Person.Address;  
GO  
ENABLE Trigger Person.uAddress ON Person.Address;  
GO  

B. Aktivering av en DDL-trigger

Följande exempel skapar en DDL-utlösare safety med databasomfång, och inaktiverar och aktiverar 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  
ENABLE TRIGGER safety ON DATABASE;  
GO  

C. Aktiverar alla triggers som var definierade med samma omfattning

Följande exempel aktiverar alla DDL-triggers som skapades på serverens omfattning.

gäller för: SQL Server 2008 (10.0.x) och senare.

ENABLE Trigger ALL ON ALL SERVER;  
GO  

Se även

INAKTIVERA UTLÖSARE (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
SKAPA UTLÖSARE (Transact-SQL)
DROP TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)