Deaktivere TRIGGER (Transact-SQL)SQL)

  • 05/10/2017
  • 2 minutter at læse
    • W
    • c
    • r
    • i
    • M
    • +7

Gælder for: SQL Server (alle understøttede versioner) Azure SQL Database

Desaktiverer en udløser.

Transact-SQL-syntaks-konventioner

Syntaks

DISABLE TRIGGER { trigger_name | ALL } ON { object_name | DATABASE | ALL SERVER } 

Note

For at få vist Transact-SQL-syntaks for SQL Server 2014 og tidligere, se Dokumentationen for tidligere versioner.

Argumenter

schema_name
Er navnet på det skema, som udløseren hører til. schema_name kan ikke angives for DDL- eller logon-udløsere.

trigger_name
Er navnet på den udløser, der skal deaktiveres.

ALL
Angiver, at alle udløsere, der er defineret i ON-klausulens anvendelsesområde, deaktiveres.

Advarsel

SQL Server opretter udløsere i databaser, der er offentliggjort til sammenlægningsreplikation. Hvis du angiver ALL i offentliggjorte databaser, deaktiveres disse udløsere, hvilket forstyrrer replikationen. Kontroller, at den aktuelle database ikke er offentliggjort til sammenlægningsreplikation, før du angiver ALL.

object_name
Er navnet på den tabel eller visning, som DML-udløseren trigger_name blev oprettet til at udføre.

DATABASE
Angiver for en DDL-udløser, at trigger_name blev oprettet eller ændret til at blive udført med databaseomfang.

ALL SERVER
Gælder for: SQL Server 2008 og nyere versioner.

Angiver for en DDL-udløser, at trigger_name blev oprettet eller ændret til at blive eksekveret med serverområdet. ALL SERVER gælder også for logon-triggere.

Bemærkning

Denne indstilling er ikke tilgængelig i en indeholdt database.

Bemærkninger

Triggere er som standard aktiveret, når de oprettes. Hvis du deaktiverer en udløser, slettes den ikke. Triggeren eksisterer stadig som et objekt i den aktuelle database. Triggeren udløses dog ikke, når Transact-SQL-udsagn, som den var programmeret på, udføres. Triggere kan aktiveres igen ved at bruge ENABLE TRIGGER. DML-udløsere, der er defineret på tabeller, kan også deaktiveres eller aktiveres ved hjælp af ALTER TABLE.

Ændring af udløseren ved hjælp af ALTER TRIGGER-anvisningen aktiverer udløseren.

Permissioner

For at deaktivere en DML-udløser skal en bruger som minimum have ALTER-tilladelse til den tabel eller visning, som udløseren blev oprettet i.

For at deaktivere en DDL-udløser med serverområde (ON ALL SERVER) eller en logon-udløser skal en bruger have CONTROL SERVER-tilladelse på serveren. For at deaktivere en DDL-udløser med databaseområde (ON DATABASE) skal en bruger som minimum have tilladelse ALTER ANY DATABASE DDL TRIGGER i den aktuelle database.

Eksempler

De følgende eksempler er beskrevet i AdventureWorks2012-databasen.

A. Deaktivering af en DML-udløser på en tabel

Det følgende eksempel deaktiverer udløser uAddress, der blev oprettet på tabel Person.

DISABLE TRIGGER Person.uAddress ON Person.Address; GO 

B. Deaktivering af en DDL-udløser

Det følgende eksempel opretter en DDL-udløser safety med databaseområde og deaktiverer den derefter.

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. Deaktivering af alle triggere, der blev defineret med samme omfang

Det følgende eksempel deaktiverer alle DDL-triggere, der blev oprettet på serverområdet.

DISABLE Trigger ALL ON ALL SERVER; GO 

See Also

ENABLE TRIGGER (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.