In diesem Artikel werden wir untersuchen.
In SQL Server gibt es drei Haupttypen von Triggern:
Lassen Sie uns diese Auslöser in diesem Leitfaden erkunden.
SQL Server -DML -Auslöser
DML- oder Datenmanipulationssprachlachen Trigger sind Triggertypen, die als Reaktion auf einen Einsatz, Aktualisieren und Löschen von Operationen in einer Tabelle oder Ansicht feuern. DML -Trigger werden ausgeführt, wenn eine gültige Operation ausgeführt wird, ob Zeilen betroffen sind.
Erstellen Sie DML nach Trigger
In SQL Server können Sie einen DML -Trigger mit der Anweisung Create Trigger erstellen.
Erstellen Sie Trigger Schema_Name.Trigger_NameLassen Sie uns die obige Syntax aufschlüsseln:
Um zu lernen, wie man einen DML -Auslöser erstellt und verwendet, nehmen wir ein praktisches Beispiel.
Erstellen Sie Beispieldatenbank und fügen Sie die Daten ein, wie in den unten angegebenen Abfragen angegeben:
-- Beispieldatenbank erstellenSobald wir die Beispieldaten haben, können wir fortfahren und einen DML -Auslöser erstellen, um bei einem Aktualisierungsvorgang auf der Tabelle zu feuern.
Betrachten Sie das unten gezeigte Beispiel:
-- Erstellen Sie Tabelle zum Speichern von Update -HistorienDie obige Abfrage erstellt einen Auslöser, der ausbreitet, wenn wir ein Update auf der Tabelle durchführen. Um Trigger zu testen, können wir ein Update als:
-- Tabelle aktualisierenNach der Ausführung können wir überprüfen, ob der Auslöser funktioniert, indem wir die Spalten in der modifizierten Tabelle auswählen.
-- Überprüfen Sie die modifizierte TabelleIn SSMS können Sie die Trigger auf einer Tabelle anzeigen, indem Sie die Option Trigger erweitern:
Anstelle von Triggern erstellen
Die andere Art von DML -Auslöser auf dem SQL -Server ist anstelle von Triggern. Dies sind Art der Trigger, die anstelle der DML -Anweisung ausführen. Wenn wir beispielsweise eine Löschanweisung angeben, können wir die anstelle von Triggern verwenden, um vor der Operation auszuführen.
Die Syntax zum Erstellen eines anstelle von Auslöser ist wie gezeigt:
Erstellen Sie Trigger Schema_Name.Trigger_NameBeispielsweise erstellt die folgende Abfrage einen Auslöser, der eine Nachricht anzeigt, wenn eine Einfügungsoperation auf der Tabelle durchgeführt wird.
-- erstellen anstelle von TriggerSobald wir die obige Abfrage ausgeführt haben, sollten wir eine Nachricht erhalten, die angibt, dass wir keine Einfügung auf der Tabelle ausführen können.
FehlerSie können nicht in diese Tabelle einfügen
SQL DDL -Auslöser
DDL- oder Datendatendefinitionssprache sind Auslöser, die auf Ereignisse auf den Server oder die Datenbank anstelle einer Tabelle reagieren. DDL -Trigger reagieren auf Ereignisse wie Drop, Grant, verweigern, revoke, aktualisieren Sie Statistiken, Erstellen und Alter.
Erstellen Sie DDL -Trigger
Die Syntax zum Erstellen eines DDL -Triggers ist wie gezeigt:
Erstellen Sie Trigger Trigger_NameWir können die Syntax als:
Die folgende Beispielabfrage erstellen Sie einen DDL -Auslöser, der ausgelöst wird.
-- Erstellen Sie DDL -TriggerSobald wir ein Drop -Ereignis in der Datenbank ausgeführt haben.
Wir können den Abzug testen:
-- TestauslöserDie Abfrage sollte XML -Informationen über das Ereignis zurückgeben als:
In SSMS können Sie die Trigger anzeigen, indem Sie die Datenbankauslöser unter Programmierbarkeit in Ihrer Zieldatenbank erweitern.
Trigger aktivieren/deaktivieren
Mit SQL Server können Sie Trigger aktivieren und deaktivieren. Verwenden Sie die Abfrage als:
Aktivieren Sie Trigger update_trigger beim Verkauf;Wobei update_trigger den Auslösernamen und den Verkauf darstellen.
Sie können auch alle Auslöser auf einem Tisch aktivieren wie:
Aktivieren Sie alle auf table_name ausVerwenden Sie die Abfrage, um den Datenbankauslöser zu aktivieren:
Aktivieren Sie Trigger Drop_ddl_trigger bei Verkauf;Hier repräsentiert drop_ddl_trigger den Auslösernamen und den Verkauf der Datenbank.
Verwenden Sie die Abfrage, um alle Datenbankauslöser zu aktivieren:
Aktivieren Sie den Verkauf auszulösenUm eine Tabelle oder einen Datenbankauslöser zu deaktivieren, ersetzen Sie das Schlüsselwort aktivieren durch Deaktivieren ☺️.
Abzug löschen
Um einen Auslöser zu entfernen, können Sie die Drop -Anweisung wie gezeigt verwenden:
Drop -Trigger, wenn existiert Trigger_name;SQL Server zeigen alle Trigger an
Verwenden Sie die Abfrage wie gezeigt, um alle Trigger in einer SQL -Serverinstanz anzuzeigen:
Wählen Sie Name, Type_DESC, IS_DISABED, IS_INSTEAD_OF_TRIGGERFUCH FÜR SYS.Trigger, wo Typ = 'tr'Die Abfrage sollte alle Auslöser in der SQL -Serverinstanz zurückgeben als:
SQL Server -Anmeldeauslöser
Anmeldeauslöser sind Triggertypen, die ausgeführt werden, wenn eine Anmeldeaktivität auf dem Server auftritt. Diese Arten von Triggern werden nach einer erfolgreichen Authentifizierung ausgeführt, jedoch vor dem Erstellen einer Benutzersitzung. Da sie verwendet werden, um die Anmeldebauaktivität zu verarbeiten, erstellen wir sie auf Serverebene, wie im folgenden Beispiel gezeigt:
VORSICHT: Der folgende Auslöser kann zukünftige Anmeldungen am Server verhindern. Stellen Sie sicher, dass Sie sich vor dem Anmeldung löschen.
VORSICHT - ☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen☝Euen.
-- Machen Sie einen Auslöser anDer Auslöser zeigt eine Nachricht an, wenn sich der Benutzer auf dem Server anmeldet.
Abschluss
In diesem Leitfaden haben Sie verschiedene Arten von Triggern verstanden, wie man das Erstellen, Aktivieren, Deaktivieren, Löschen und Ansehen auf dem SQL -Server erstellt, aktiviert, löscht und anzeigt.