SQL Server deaktiverer utløser

SQL Server deaktiverer utløser

En trigger er en lagret prosedyre utført når en spesifikk handling/hendelse oppstår på serveren. Ulike typer triggere kan være assosiert med spesielle handlinger.

Dette innlegget tar sikte på å vise deg hvordan du kan deaktivere en eksisterende trigger i SQL Server. Deaktivering av en trigger kan midlertidig tillate deg å utføre en handling uten en påfølgende hendelse. Dette er veldig nyttig når du feilsøker eller utfører vedlikeholdsoperasjoner på serveren.

Opprette en testutløser

Før vi diskuterer hvordan du deaktiverer en eksisterende trigger i SQL -serveren, la oss starte med å definere en enkel trigger for illustrasjonsformål.

Begynn med å opprette en database:

Drop -databasen hvis eksisterer local_db;
opprette database local_db;
Bruk local_db;


Deretter definerer du en tabell som vist:

Lag tabelldatabaser (
id int ikke null identitet (1,1) primærnøkkel,
Server_name varchar (50),
server_address varchar (255) ikke null,
kompresjon_metod varchar (100) standard 'ingen',
size_on_disk float ikke null,
Size_Compription Float,
total_records int ikke null,
init_date dato
);


Deretter oppretter du en trigger for å deaktivere antall berørte rader når en innsats eller slett handling oppstår.

Lag trigger nostatus
På databaser
Etter innsetting, slett
SOM
BEGYNNE
Sett NoNount på;
SLUTT;

SQL Server Deaktiver utløserforespørsel

Heldigvis gir SQL Server oss en naturlig metode for å deaktivere en trigger, som vist i syntaks nedenfor:

Deaktiver trigger [skjema_navn . ] trigger_name [, ... n] | ALLE
På Object_name | Database | Alle server [; ]

Spørringsargumenter

Spørringen godtar følgende parametere:

    1. Skjemanavn - Dette definerer navnet på skjemaet som utløseren ligger. Parameteren SHCEMA_NAME støttes ikke for Data Definition Language Triggers eller Logon Triggers.
    2. Trigger_name - Navnet på utløseren du ønsker å deaktivere.
    3. Alt - denne parameteren lar alle triggerne som er definert i ON -leddet, deaktiveres på en gang.
    4. Objektnavn - Navnet på tabellen eller visningen på hvilken utløser som er bosatt.
    5. Database - Angir omfanget av DDL -utløseren.

Avhengig av målbruker- og serverkonfigurasjonen, krever Disable Trigger -spørringen en annen tillatelse på tabellen eller visningen.

Eksempel - Deaktivering av en DML -trigger på et bord

Følgende eksempel viser hvordan du deaktiverer utløseren Nostatus på databasetabellen.

Deaktiver triggerdatabaser.Nostatus på
databaser;


Å kjøre uttalelsen ovenfor skal deaktivere utløseren med det spesifiserte navnet. Dette sikrer at avtrekkeren ikke blir avfyrt ved innsats eller slett handlinger.

Eksempel 2 - Deaktiver trigger ved bruk av SSMS

Du kan også deaktivere en trigger ved hjelp av SQL Server Management Studio. Åpne objektutforskeren. Finn måldatabasen -> Måltabellen - Utløser.

Høyreklikk og velg Deaktiver.


Når du er vellykket, bør du se en suksessdialogboks.

Eksempel 3 - SQL Server Deaktiver alle utløsere på en tabell/visning

Du kan også deaktivere alle triggere i en gitt tabell eller visning ved hjelp av kommandoen som er gitt i utdraget nedenfor:

Deaktiver utløser alt på
Local_db.databaser;


Ovennevnte spørring vil deaktivere alle triggere i databasetabellen.

Eksempel 4 - SQL Server Deaktiver alle utløsere i en database

Anta at du ønsker å utføre en database-bredt trigger deaktiver. Du kan utføre en spørring som angitt nedenfor:

Deaktiver utløser alt på
database;

Avslutning

I dette innlegget diskuterte vi hvordan du bruker deaktivering av trigger -kommandoer i SQL Server for å deaktivere triggere på forskjellige objektnivåer.

Takk for at du leste!!