SQL Server Deaktivieren Sie Trigger

SQL Server Deaktivieren Sie Trigger

Ein Auslöser ist eine gespeicherte Prozedur, die ausgeführt wird, wenn auf dem Server ein spezifisches Aktion/ein bestimmtes Ereignis auftritt. Verschiedene Arten von Triggern können mit bestimmten Aktionen in Verbindung gebracht werden.

In diesem Beitrag können Sie zeigen, wie Sie einen vorhandenen Auslöser in SQL Server deaktivieren können. Wenn Sie einen Auslöser deaktivieren. Dies ist sehr nützlich bei der Fehlerbehebung oder Durchführung von Wartungsvorgängen auf dem Server.

Erstellen eines Testauslösers

Bevor wir diskutieren, wie ein vorhandener Auslöser auf dem SQL -Server deaktiviert werden kann, beginnen wir zunächst einen einfachen Auslöser für Abbildungszwecke.

Erstellen Sie zunächst eine Datenbank:

Datenbank fallen lassen, wenn vorhanden local_db;
Datenbank erstellen local_db;
Verwenden Sie local_db;


Definieren Sie als nächstes eine Tabelle wie gezeigt:

Erstellen von Tabellendatenbanken (
ID int nicht Null -Identität (1,1) Primärschlüssel,
server_name varchar (50),
server_address varchar (255) nicht null,
compression_method varchar (100) Standard 'Keine',
size_on_disk float nicht null,
size_compressed Float,
Total_records int nicht null,
init_date Datum
);


Erstellen Sie als Nächst.

Erstellen Sie Trigger Nostatus
Auf Datenbanken
Nach dem Einfügen löschen
ALS
START
NoCount einstellen;
ENDE;

SQL Server Deaktivieren Sie Trigger -Abfrage

Glücklicherweise bietet SQL Server eine native Methode zur Deaktivierung eines Auslösers, wie in der folgenden Syntax gezeigt:

Deaktivieren Sie Trigger [schema_name . ] Trigger_name [,… n] | ALLE
Auf Object_Name | Datenbank | Alle Server [; ]

Abfragestarme

Die Abfrage akzeptiert die folgenden Parameter:

    1. SCHEMA_NAME - Dies definiert den Namen des Schemas, auf dem sich der Trigger befindet. Der Parameter shcema_name wird nicht für Datendefinitionssprache oder Anmeldeauslöser unterstützt.
    2. Trigger_Name - Der Name des Auslösers, den Sie deaktivieren möchten.
    3. All - mit diesem Parameter ermöglicht es, dass alle in der ON -Klausel definierten Trigger gleichzeitig deaktiviert werden.
    4. Object_Name - Der Name der Tabelle oder der Ansicht, auf der sich der Trigger befindet.
    5. Datenbank - Gibt den Umfang des DDL -Triggers an.

Abhängig von der Konfiguration des Zielbenutzers und der Server erfordert die Deaktivierungsauslöserabfrage eine Änderungserlaubnis in der Tabelle oder Ansicht.

Beispiel - Deaktivieren eines DML -Triggers auf einer Tabelle

Das folgende Beispiel zeigt, wie der Trigger -Nostatus in der Datenbankentabelle deaktiviert wird.

Deaktivieren Sie Triggerdatenbanken.Nostatus auf
Datenbanken;


Ausführen der obigen Anweisung sollte den Auslöser mit dem angegebenen Namen deaktivieren. Dies stellt sicher, dass der Auslöser nicht auf Einfügen oder Löschen von Aktionen abgefeuert wird.

Beispiel 2 - Deaktivieren Sie den Trigger mit SSMS

Sie können einen Auslöser auch über das SQL Server Management Studio deaktivieren. Öffnen Sie den Objektforscher. Suchen Sie die Zieldatenbank -> Zieltabelle - Auslöser.

Klicken Sie mit der rechten Maustaste und wählen Sie Deaktivieren.


Sobald Sie erfolgreich sind, sollten Sie ein Erfolgsdialogfeld zum Erfolg sehen.

Beispiel 3 - SQL Server deaktivieren alle Auslöser auf einer Tabelle/Ansicht

Sie können auch alle Auslöser in einer bestimmten Tabelle oder Ansicht unter Verwendung des im folgenden Snippet angegebenen Befehls deaktivieren:

Deaktivieren Sie alle auf
local_db.Datenbanken;


Die obige Abfrage deaktiviert alle Auslöser in der Datenbankentabelle.

Beispiel 4 - SQL Server deaktivieren alle Trigger in einer Datenbank

Angenommen, Sie möchten einen datenbankweiten Abzug deaktivieren. Sie können eine Abfrage wie unten angegeben ausführen:

Deaktivieren Sie alle auf
Datenbank;

Beendigung

In diesem Beitrag haben wir darüber diskutiert, wie die Befehle zur Deaktivierung von Deaktivierungen in SQL Server verwendet werden, um Auslöser auf verschiedenen Objektebenen zu deaktivieren.

Danke fürs Lesen!!