SQL Server RAISERROR (Deutsch)

Zusammenfassung: In diesem Tutorial erfahren Sie, wie Sie die SQL Server RAISERROR-Anweisung verwenden, um benutzerdefinierte Fehlermeldungen zu generieren.

Wenn Sie eine neue Anwendung entwickeln, sollten Sie stattdessen die THROW Anweisung verwenden.,

Übersicht der SQL Server RAISEERROR-Anweisung

Mit der RAISERROR – Anweisung können Sie Ihre eigenen Fehlermeldungen generieren und diese im selben Format wie eine von der SQL Server-Datenbank-Engine generierte Systemfehler-oder Warnmeldung an die Anwendung zurückgeben. Darüber hinaus können Sie mit der Anweisung RAISERROR eine bestimmte Nachrichten-ID, den Schweregrad und den Status für die Fehlermeldungen festlegen.,

Das Folgende veranschaulicht die Syntax derRAISERROR Anweisung:

Untersuchen wir die Syntax derRAISERROR zum besseren Verständnis.

message_id

Die message_id ist eine benutzerdefinierte Fehlernachrichtennummer, die in der sys.messages Katalogansicht gespeichert ist.

Um eine neue benutzerdefinierte Fehlernachrichtennummer hinzuzufügen, verwenden Sie die gespeicherte Prozedur sp_addmessage. Eine benutzerdefinierte Fehlermeldungsnummer sollte größer als 50.000 sein., Standardmäßig verwendet die Anweisung RAISERROR die Anweisung message_id, um einen Fehler auszulösen.,

Die folgende Anweisung fügt der Ansicht sys.messages eine benutzerdefinierte Fehlermeldung hinzu:

Um die Einfügung zu überprüfen, verwenden Sie die folgende Abfrage:

Code language: SQL (Structured Query Language) (sql)

Um diese message_id zu verwenden, führen Sie die Anweisung RAISEERROR wie folgt aus:

Code language: SQL (Structured Query Language) (sql)

Hier ist die Ausgabe:

Code language: SQL (Structured Query Language) (sql)

Um eine Nachricht aus der sys.messages zu entfernen, verwenden Sie die gespeicherte Prozedur sp_dropmessage., Die folgende Anweisung löscht beispielsweise die Nachrichten-ID 50005:

Code language: SQL (Structured Query Language) (sql)

message_text

Die message_text ist eine benutzerdefinierte Nachricht mit einer Formatierung wie der printf-Funktion in der C-Standardbibliothek. Die message_text kann bis zu 2.047 Zeichen betragen, 3 letzte Zeichen sind für Ellipsen (…) reserviert. Wenn die message_text 2048 oder mehr enthält, wird sie abgeschnitten und mit einer Ellipse aufgefüllt.,

Wenn Sie die message_text angeben, verwendet die RAISERROR Anweisung message_id 50000, um die Fehlermeldung auszulösen.

Im folgenden Beispiel wird die Anweisung RAISERROR verwendet, um einen Fehler mit einem Nachrichtentext auszulösen:

Code language: SQL (Structured Query Language) (sql)

Die Ausgabe sieht folgendermaßen aus:

Code language: SQL (Structured Query Language) (sql)

Schweregrad

Die Schweregradstufe ist eine Ganzzahl zwischen 0 und 25, wobei jede Stufe die Schwere des Fehlers darstellt.

Code language: SQL (Structured Query Language) (sql)

Zustand

Der Zustand ist eine Ganzzahl von 0 bis 255., Wenn Sie denselben benutzerdefinierten Fehler an mehreren Stellen auslösen, können Sie für jeden Speicherort eine eindeutige Statusnummer verwenden, um leichter herauszufinden, welcher Abschnitt des Codes die Fehler verursacht. Für die meisten Implementierungen können Sie 1 verwenden.

MIT Option

kann die Option LOG, NOWAIT oder SETERROR:

  • WITH LOG protokolliert den Fehler im Fehlerprotokoll und Anwendungsprotokoll für die Instanz der SQL Server-Datenbank-Engine.,
  • WITH NOWAIT sendet die Fehlermeldung an den client sofort.
  • WITH SETERROR setzt die ERROR_NUMBER und @@ERROR Werte auf message_id oder 50000, unabhängig von der Schweregradstufe.

SQL Server-RAISERROR-Beispiele

nehmen wir einige Beispiele für die Verwendung der RAISERROR – Anweisung bekommen, ein besseres Verständnis.,

A) Verwenden von SQL Server RAISERROR mit TRY CATCH block example

In diesem Beispiel verwenden wir den RAISERROR in einem TRY Block, damit die Ausführung zum zugehörigen CATCH Block springt. Innerhalb desCATCH – Blocks verwenden wir dieRAISERROR, um die Fehlerinformationen zurückzugeben, die denCATCH – Block aufgerufen haben.,

Hier ist die Ausgabe:

Code language: SQL (Structured Query Language) (sql)

B) Verwenden einer SQL Server RAISERROR-Anweisung mit einem dynamischen Nachrichtentext Beispiel

Das folgende Beispiel zeigt, wie eine lokale Variable verwendet wird, um den Nachrichtentext für eine RAISERROR – Anweisung bereitzustellen:

Die Ausgabe lautet wie folgt:

Code language: SQL (Structured Query Language) (sql)

div>

Wenn RAISERROR Anweisung

Verwenden Sie die RAISERROR Anweisung in den folgenden Szenarien:

  • Fehlerbehebung Transact-SQL-Code.
  • Gibt Nachrichten zurück, die variablen Text enthalten.
  • Untersuchen Sie die Werte der Daten.,
  • Bewirkt, dass die Ausführung von einem TRY – Block zum zugehörigen CATCH – Block springt.
  • Gibt Fehlerinformationen aus demCATCH – Block an die Anrufer zurück, die entweder batch oder application aufrufen.

In diesem Tutorial erfahren Sie, wie Sie mit der Anweisung SQL Server RAISERROR benutzerdefinierte Fehlermeldungen generieren.

Share

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.