SQL Server -Wurfanweisung

SQL Server -Wurfanweisung

Fehler sind unvermeidlich, wenn es um Entwicklungen geht. Es ist daher ein guter Plan, um sicherzustellen, dass Sie einige Maßnahmen implementiert haben, damit die Fehler die Funktionalität Ihrer Anwendung nicht brechen.

Mit SQL Server können wir die Wurfanweisung verwenden, um eine Ausnahme zu steigern. Anschließend übertragen wir den Ausführungskontext auf einen Versuch, Block zu fangen, um den Fehler zu bewältigen.

Syntax

Das folgende Code -Snippet zeigt die Syntax für die Wurfanweisung:

Werfen [ERROR_NUMER,
Fehlermeldung,
Zustand];

Die Argumente in der bereitgestellten Syntax enthalten Folgendes:

  1. Fehlernummer - Dies ist ein ganzzahliger Wert, der die erhöhte Ausnahme bestimmt. Die Fehlerummer muss im Bereich von 50000 und 2147483647 liegen. Denken Sie daran, dass die Fehlercodes unter 50000 für die SQL Server -Engine reserviert sind.
  2. Fehlermeldung - Dies bezieht sich auf einen Stringwert, der als Beschreibung für die erhöhte Ausnahme fungiert. Es muss vom Typ nvarchar sein.
  3. Zustand - Das Zustandsargument ist ein ganzzahliger Wert im Bereich von 0 bis 255, der den mit der errors_message zugeordneten Zustand bezeichnet.

Hinweis: Jede Erklärung vor einer Wurfklausel muss mit einem Semikolon gekündigt werden. Der SQL -Server benötigt auch den Wurf, um die vorherigen Argumente einzuschließen. Wenn die Throw -Anweisung nicht die vorherigen Argumente enthält, muss sie innerhalb eines Try/Catch -Blocks eingeschlossen sein.

Die Syntax ist wie folgt:

Beginnen Sie versuchen
-- potenzielle Fehler
Ende versuchen
Fangen Sie an
-- Tun Sie dies, wenn ein Fehler auftritt
WURF;
Ende Fang

Sie können das % -Scharakter im Parameter ERROR_MESSAGE nicht verwenden. Dies liegt daran, dass es sich um einen reservierten Charakter handelt. Wenn Sie das%-Scharakter in Ihre Fehlermeldung einbeziehen müssen, stellen Sie sicher, dass Sie ihm entkommen, indem Sie die doppelten Prozentzeichen (%%) entkommen, indem Sie die doppelten Prozentsatz -Zeichen haben (%%).

Beispiele für SQL Server -Wurfanweisung

Schauen wir uns einige Beispiele der Wurfanweisung in Aktion an.

SQL Server verwendet die Wurfanweisung, um Ausnahme zu werfen

Das folgende Beispiel zeigt die Verwendung der Throw -Anweisung, um eine Ausnahme zu erhöhen:

Wurf 50001, '[Fail] - Der angeforderte Wert ist nicht gefunden.', 1;

In diesem Beispiel verwenden wir die Wurfanweisung, um eine Ausnahme mit dem Fehlercode 50001 und dem Status von 1 zu erheben.

Die resultierende Ausgabe ist wie folgt:

SQL -Fehler [50001] [S0001]: [Fail] - Der angeforderte Wert ist nicht gefunden.

SQL Server überarbeitet die Ausnahme mithilfe der Wurfanweisung

Wir können auch die Ausnahme von Wurf verwenden, um die letzte Ausnahme zu überdenken. Ein Beispielcode lautet wie folgt:

Tropfentisch, wenn existet t;
Erstellen Sie Tabelle T (
Id int nicht null primärer Schlüssel,
);
Beginnen Sie versuchen
In t (id) Werte (1) einfügen;
-- Ausnahme machen
In t (id) Werte (1) einfügen;
Ende versuchen
Fangen Sie an
print ('Fehler gefangen');
Wurf;
Endfang;

Die vorherige Abfrage sollte Folgendes drucken:

Fehler gefangen
SQL -Fehler [2627] [23000]: Verletzung der primären Schlüsselbeschränkung 'PK__T__3213E83F35AD099E' '. Der do -do -do -do -taste kann nicht einfügen.T'. Der doppelte Schlüsselwert ist (1).

Verwenden der FormatMessage, um eine angepasste Nachricht zu werfen

Das folgende Beispiel zeigt, wie die FormatMessage -Funktion verwendet wird, um eine Ausnahme mit einer angepassten Nachricht zu werfen:

Exec -Systeme.Sp_addmessage @msgnum = 50001,
@Severity = 20,
@msgText = 'Eine angepasste Nachricht einschließlich Variable: %d',
@lang = 'us_english' ',
@with_log = false,
@Replace = null;
Declare @MSG nvarchar (2048) = formatMessage (50001, 100);
Wurf 50001, @MSG, 1;

In diesem Fall können wir mit der FormatMessage -Funktion die angepassten Nachrichten einschließlich Variablen hinzufügen. Auch hier können Sie die Dokumente auf der SQL Server sp_addMessage () überprüfen, um mehr zu erfahren.

Die resultierende Fehlermeldung lautet wie folgt:

SQL -Fehler [50001] [S0001]: Eine angepasste Nachricht einschließlich Variable: 100

Abschluss

In diesem Beitrag wurde erläutert, wie Sie die Wurfklausel auf dem SQL -Server verwenden können, um eine Ausnahme auszuräumen.

Danke fürs Lesen!