Shrnutí: v tomto tutoriálu, se dozvíte, jak používat SQL Server RAISERROR
prohlášení generovat uživatelem definované chybové zprávy.
pokud vyvíjíte novou aplikaci, měli byste místo toho použít příkaz THROW
.,
SQL Server RAISEERROR prohlášení přehled
RAISERROR
prohlášení umožňuje vytvořit si vlastní chybové zprávy a návrat těchto zpráv zpět do aplikace pomocí stejný formát jako systémová chyba nebo upozornění generovaných SQL Server Database Engine. Kromě toho příkaz RAISERROR
umožňuje nastavit konkrétní ID zprávy, úroveň závažnosti a stav chybových zpráv.,
následující příklad ilustruje syntaxi RAISERROR
prohlášení:
podívejme se na syntaxi RAISERROR
pro lepší pochopení.
message_id
message_id
je uživatelem definované chybová zpráva číslo uložené v sys.messages
katalog zobrazení.
Chcete-li přidat nové číslo chybové zprávy definované uživatelem, použijte uložený postupsp_addmessage
. Číslo chybové zprávy definované uživatelem by mělo být větší než 50 000., Ve výchozím nastavení příkaz RAISERROR
používá message_id
50,000 pro zvýšení chyby.,
následující prohlášení přidává vlastní chybovou zprávu na sys.messages
zobrazit:
ověřit vložit, můžete použít následující dotaz:
Code language: SQL (Structured Query Language) (sql)
Chcete-li použít tento message_id, spuštění RAISEERROR
prohlášení takto:
Code language: SQL (Structured Query Language) (sql)
výstup:
Code language: SQL (Structured Query Language) (sql)
odstranit zprávu z sys.messages
, můžete použít uložené procedury sp_dropmessage
., Například, následující příkaz odstraní zprávu id 50005:
Code language: SQL (Structured Query Language) (sql)
message_text
message_text
je uživatelem definované zprávu s formátováním jako printf
funkce v C standardní knihovna. message_text
může mít až 2 047 znaků, 3 poslední znaky jsou vyhrazeny pro elipsu (…). Pokud message_text
obsahuje 2048 nebo více, bude zkrácena a je vyplněna elipsou.,
Když zadátemessage_text
, příkazRAISERROR
používá message_id 50000 ke zvýšení chybové zprávy.
následující příklad používá RAISERROR
prohlášení zvýšit chyba s text zprávy:
Code language: SQL (Structured Query Language) (sql)
výstup bude vypadat takto:
Code language: SQL (Structured Query Language) (sql)
závažnost
úroveň závažnosti je číslo mezi 0 a 25, s každou úroveň představuje závažnosti chyby.
Code language: SQL (Structured Query Language) (sql)
state
stav je celé číslo od 0 do 255., Pokud zvýšíte stejnou chybu definovanou uživatelem na více místech, můžete pro každé místo použít jedinečné číslo stavu, aby bylo snazší zjistit, která část kódu způsobuje chyby. Pro většinu implementací můžete použít 1.
S možností
možnost může být LOG
NOWAIT
nebo SETERROR
:
-
WITH LOG
protokoluje chyby v protokol chyb a protokolu aplikace pro instance SQL Server Database Engine., -
WITH NOWAIT
odešle chybovou zprávu klientovi okamžitě. -
WITH SETERROR
nastavíERROR_NUMBER
@@ERROR
hodnoty message_id nebo 50000, bez ohledu na úroveň závažnosti.
Serveru SQL RAISERROR příklady
vezměme si některé příklady použití RAISERROR
prohlášení získat lepší porozumění.,
A) Pomocí Serveru SQL RAISERROR s TRY CATCH bloku příklad:
V tomto příkladu, můžeme použít RAISERROR
uvnitř TRY
blok způsobí provedení na skok k souborům CATCH
blok. Uvnitř CATCH
blok, můžeme použít RAISERROR
vrátit informace o chybě, že dovolávat CATCH
blok.,
výstup:
Code language: SQL (Structured Query Language) (sql)
B) Pomocí Serveru SQL RAISERROR s dynamic text zprávy příklad:
následující příklad ukazuje, jak používat lokální proměnné poskytnout text zprávy pro RAISERROR
prohlášení:
výstup je následující:
Code language: SQL (Structured Query Language) (sql)
Při použití RAISERROR
můžete použít RAISERROR
prohlášení v následujících scénářích:
- řešení Potíží Transact-SQL kód.
- vrátí zprávy, které obsahují proměnný text.
- zkontrolujte hodnoty dat.,
- Protože provedení skočit z
TRY
blok k souborůmCATCH
blok. - vrátit informace o chybě z
CATCH
blok volajícím, buď volání šarže nebo aplikace.
V tomto tutoriálu, se dozvíte, jak používat SQL Server RAISERROR
prohlášení generovat uživatelem definované chybové zprávy.