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 LOGprotokoluje chyby v protokol chyb a protokolu aplikace pro instance SQL Server Database Engine., -
WITH NOWAITodešle chybovou zprávu klientovi okamžitě. -
WITH SETERRORnastavíERROR_NUMBER@@ERRORhodnoty 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
TRYblok k souborůmCATCHblok. - vrátit informace o chybě z
CATCHblok 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.