Serveru SQL RAISERROR

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ům CATCH blok.
  • vrátit informace o chybě zCATCH 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.

Share

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *