logo

SQL-Trigger | Studentendatenbank

Ein Trigger ist eine gespeicherte Prozedur in einer Datenbank, die automatisch aufgerufen wird, wenn ein besonderes Ereignis in der Datenbank eintritt. Beispielsweise kann ein Trigger aufgerufen werden, wenn eine Zeile in eine bestimmte Tabelle eingefügt wird oder wenn bestimmte Tabellenspalten aktualisiert werden. Einfach ausgedrückt ist ein Trigger eine Sammlung von SQL Anweisungen mit bestimmten Namen, die im Systemspeicher gespeichert sind. Es gehört zu einer bestimmten Klasse gespeicherter Prozeduren, die automatisch als Reaktion auf Datenbankserverereignisse aufgerufen werden. An jeden Auslöser ist eine Tabelle angehängt.

Da ein Trigger im Gegensatz zu einer gespeicherten Prozedur nicht direkt aufgerufen werden kann, wird er als spezielle Prozedur bezeichnet. Ein Trigger wird automatisch aufgerufen, wenn ein Datenänderungsereignis für eine Tabelle stattfindet. Dies ist der Hauptunterschied zwischen einem Trigger und einer Prozedur. Andererseits muss eine gespeicherte Prozedur direkt aufgerufen werden.



Funktionen von Arduino

Im Folgenden sind die Hauptunterschiede zwischen Triggern und gespeicherten Prozeduren aufgeführt:

  1. Trigger können nicht manuell aufgerufen oder ausgeführt werden.
  2. Es besteht keine Chance, dass Trigger Parameter erhalten.
  3. Eine Transaktion kann innerhalb eines Triggers nicht festgeschrieben oder zurückgesetzt werden.

Syntax:

Trigger erstellen [trigger_name]



[vor | nach]

einfügen

auf [table_name]



[Für jede Reihe]

[trigger_body]

Erklärung der Syntax

  1. Trigger erstellen [Triggername]: Erstellt oder ersetzt einen vorhandenen Trigger durch den Triggername.
  2. [vor | after]: Dies gibt an, wann der Trigger ausgeführt wird.
  3. insert: Dies gibt die DML-Operation an.
  4. Auf [table_name]: Dies gibt den Namen der Tabelle an, die dem Trigger zugeordnet ist.
  5. [für jede Zeile]: Dies gibt einen Trigger auf Zeilenebene an, d. h. der Trigger wird für jede betroffene Zeile ausgeführt.
  6. [trigger_body]: Dies stellt die Operation bereit, die ausgeführt werden soll, wenn der Trigger ausgelöst wird

Warum setzen wir Auslöser ein?

Wenn wir in bestimmten wünschenswerten Szenarien einige Aktionen automatisch ausführen müssen, sind Auslöser nützlich. Beispielsweise müssen wir uns der Häufigkeit und des Zeitpunkts von Änderungen an einer Tabelle bewusst sein, die sich ständig ändert. In solchen Fällen könnten wir einen Auslöser erstellen, um die erforderlichen Daten in eine andere Tabelle einzufügen, wenn in der Primärtabelle Änderungen vorgenommen wurden.

Verschiedene Triggertypen in SQL Server

Es gibt zwei Kategorien von Auslösern:

  1. DDL-Trigger
  2. DML-Trigger
  3. Anmeldeauslöser

DDL-Trigger

Die Befehlsereignisse der Data Definition Language (DDL) wie Create_table, Create_view, drop_table, Drop_view und Alter_table bewirken, dass die DDL-Trigger aktiviert werden.

Java versuche es zu fangen

SQL Server

  create trigger safety    on database  for   create_table,alter_table,drop_table  as   print 'you can not create,drop and alter tab>

Ausgabe:

DML-Trigger

Die Daten verwenden DML-Befehlsereignisse (Manipulation Language), die mit „Einfügen“, „Aktualisieren“ und „Löschen“ beginnen und die DML-Trigger auslösen. entsprechend insert_table, update_view und delete_table.

SQL Server

create trigger deep  on   emp  for insert,update ,delete   as   print 'you can not insert,update and delete this table i' rollback;>

Ausgabe:

Anmeldeauslöser

Anmeldeauslöser sind Auslöser als Reaktion auf ein Anmeldeereignis. Wenn eine Benutzersitzung mit einer SQL Server-Instanz erstellt wird, nachdem der Authentifizierungsprozess der Protokollierung abgeschlossen ist, aber bevor eine Benutzersitzung eingerichtet wird, findet das LOGON-Ereignis statt. Infolgedessen werden alle PRINT-Anweisungsmeldungen und alle vom Trigger generierten Fehler im SQL Server-Fehlerprotokoll angezeigt. Authentifizierungsfehler verhindern die Verwendung von Anmeldetriggern. Diese Auslöser können verwendet werden, um Anmeldeaktivitäten zu verfolgen oder die Anzahl der Sitzungen zu begrenzen, die eine bestimmte Anmeldung haben kann, um Serversitzungen zu überwachen und zu verwalten.

Wie zeigt SQL Server Trigger an?

Der Show- oder List-Trigger ist nützlich, wenn wir viele Datenbanken mit vielen Tabellen haben. Diese Abfrage ist sehr nützlich, wenn die Tabellennamen in mehreren Datenbanken gleich sind. Mit dem folgenden Befehl können wir eine Liste aller im SQL Server verfügbaren Trigger anzeigen:

Syntax:

FROM sys.triggers, SELECT name, is_instead_of_trigger
IF-Typ = ‚TR‘;

Das SQL Server Management Studio macht es sehr einfach, alle Trigger anzuzeigen oder aufzulisten, die für eine bestimmte Tabelle verfügbar sind. Die folgenden Schritte helfen uns dabei:

755 chmod

Gehe zum Datenbanken Wählen Sie im Menü die gewünschte Datenbank aus und erweitern Sie sie.

  • Wähle aus Tische Menü und erweitern Sie es.
  • Wählen Sie eine bestimmte Tabelle aus und erweitern Sie sie.

Wir werden hier verschiedene Optionen erhalten. Wenn wir das wählen Löst aus Mit dieser Option werden alle in dieser Tabelle verfügbaren Trigger angezeigt.

VOR und NACH dem Auslöser

BEFORE-Trigger führen die Triggeraktion aus, bevor die auslösende Anweisung ausgeführt wird. AFTER-Trigger führen die Triggeraktion aus, nachdem die auslösende Anweisung ausgeführt wurde.

Beispiel
Datenbank mit Schülerberichten, in der die Bewertung der Schülernoten aufgezeichnet wird. Erstellen Sie in einem solchen Schema einen Trigger, damit die Gesamtzahl und der Prozentsatz der angegebenen Markierungen automatisch eingefügt werden, wenn ein Datensatz eingefügt wird.

Hier wird ein Trigger aufgerufen, bevor der Datensatz eingefügt wird, sodass das BEFORE-Tag verwendet werden kann.

Angenommen, das Datenbankschema

np.random.rand

Abfrage

mysql>>desc Student;>

SQL-Trigger zur Problemanweisung.

Bild2

Die obige SQL-Anweisung erstellt einen Trigger in der Schülerdatenbank, in dem der Trigger bei jeder Eingabe von Fachnoten vor dem Einfügen dieser Daten in die Datenbank diese beiden Werte berechnet und sie mit den eingegebenen Werten einfügt. d.h.

Ausgabe

img3

Auf diese Weise können Trigger in den Datenbanken erstellt und ausgeführt werden.

Vorteil von Triggern

Die Verwendung von Triggern in SQL Server bietet folgende Vorteile:

  1. Datenbankobjektregeln werden durch Trigger festgelegt, die dazu führen, dass Änderungen rückgängig gemacht werden, wenn sie nicht erfüllt werden.
  2. Der Trigger prüft die Daten und nimmt gegebenenfalls Änderungen vor.
  3. Mithilfe von Triggern können wir die Datenintegrität durchsetzen.
  4. Daten werden mithilfe von Triggern validiert, bevor sie eingefügt oder aktualisiert werden.
  5. Trigger unterstützen uns bei der Führung eines Aufzeichnungsprotokolls.
  6. Da Trigger nicht bei jeder Ausführung neu kompiliert werden müssen, verbessern sie die Leistung von SQL-Abfragen.
  7. Der clientseitige Code wird durch Trigger reduziert, was Zeit und Arbeit spart.
  8. Die Wartung des Abzugs ist einfach.

Nachteil von Auslösern

Zu den Nachteilen der Verwendung von Triggern in SQL Server gehören die folgenden:

  1. Nur Trigger ermöglichen die Verwendung erweiterter Validierungen.
  2. Es werden automatische Auslöser verwendet, und der Benutzer weiß nicht, wann sie ausgeführt werden. Daher ist es schwierig, Probleme zu beheben, die auf der Datenbankebene auftreten.
  3. Durch Trigger kann sich der Overhead des Datenbankservers erhöhen.
  4. In einer einzigen CREATE TRIGGER-Anweisung können wir dieselbe Triggeraktion für mehrere Benutzeraktionen angeben, z. B. INSERT und UPDATE.
  5. Zum Erstellen von Triggern steht nur die aktuelle Datenbank zur Verfügung, sie können jedoch weiterhin auf Objekte außerhalb der Datenbank verweisen.

Häufig gestellte Fragen

F1: Was ist ein SQL-Trigger?

Antwort:

Ein SQL-Trigger ist ein Datenbankobjekt, das einer Tabelle zugeordnet ist und automatisch eine Reihe von SQL-Anweisungen ausführt, wenn ein bestimmtes Ereignis in dieser Tabelle auftritt. Trigger werden verwendet, um Geschäftsregeln durchzusetzen, die Datenintegrität aufrechtzuerhalten und bestimmte Aktionen innerhalb einer Datenbank zu automatisieren. Sie können durch verschiedene Ereignisse ausgelöst werden, z. B. durch das Einfügen, Aktualisieren oder Löschen von Daten in einer Tabelle, und ermöglichen Ihnen die Durchführung zusätzlicher Vorgänge auf der Grundlage dieser Ereignisse.

F2: Wie funktionieren SQL-Trigger?

Antwort:

SQL-Trigger werden mithilfe von SQL-Anweisungen definiert und einer bestimmten Tabelle zugeordnet. Wenn das definierte Triggerereignis (z. B. INSERT, UPDATE, DELETE) in dieser Tabelle auftritt, wird der zugehörige Triggercode automatisch ausgeführt. Der Auslösercode kann aus SQL-Anweisungen bestehen, die Daten in derselben oder anderen Tabellen manipulieren, Einschränkungen erzwingen oder andere Aktionen ausführen können. Trigger werden innerhalb des Transaktionsbereichs ausgeführt und können so definiert werden, dass sie entweder vor oder nach dem auslösenden Ereignis ausgeführt werden.

String in ganze Zahlen umwandeln

F3: Welche Vorteile bietet die Verwendung von SQL-Triggern?

Antwort:

Zu den Vorteilen der Verwendung von SQL-Triggern gehören:

Datenintegrität: Mit Triggern können Sie komplexe Geschäftsregeln und Einschränkungen auf Datenbankebene durchsetzen und so sicherstellen, dass die Daten konsistent und korrekt bleiben.

Automatisierung: Trigger können sich wiederholende oder komplexe Aufgaben automatisieren, indem sie vordefinierte Aktionen ausführen, wann immer ein bestimmtes Ereignis eintritt. Dies reduziert den Bedarf an manuellen Eingriffen und verbessert die Effizienz.

Audit-Trails: Trigger können verwendet werden, um an Daten vorgenommene Änderungen zu verfolgen, z. B. die Protokollierung von Änderungen in einer separaten Audit-Tabelle. Dies hilft bei der Prüfung und Verwaltung eines Verlaufs von Datenänderungen.

Datenvalidierung: Trigger können zusätzliche Validierungsprüfungen an Daten durchführen, bevor diese eingefügt, aktualisiert oder gelöscht werden, um sicherzustellen, dass nur gültige und konforme Daten in der Datenbank gespeichert werden.