SQL Server RAISERROR (Svenska)

sammanfattning: i den här handledningen lär du dig hur du använder SQL Server RAISERROR-sats för att generera användardefinierade felmeddelanden.

om du utvecklar ett nytt program ska du istället använda THROW – satsen.,

SQL Server RAISEERROR-översikt

RAISERROR – satsen låter dig skapa egna felmeddelanden och returnera dessa meddelanden tillbaka till programmet med samma format som ett systemfel eller varningsmeddelande som genereras av SQL Server-databasmotorn. Dessutom låterRAISERROR – satsen dig ställa in ett specifikt meddelande-id, svårighetsgrad och tillstånd för felmeddelandena.,

följande illustrerar syntaxen förRAISERROR – satsen:

låt oss undersöka syntaxen förRAISERROR för bättre förståelse.

message_id

message_idär ett användardefinierat felmeddelande som lagras i katalogen sys.messages.

om du vill lägga till ett nytt användardefinierat felmeddelande använder du den lagrade proceduren sp_addmessage. Ett användardefinierat felmeddelandenummer ska vara större än 50 000., Som standard använder RAISERROR satsen message_id 50 000 för att höja ett fel.,

följande uttalande lägger till ett eget felmeddelande i vyn sys.messages:

för att verifiera inlägget använder du följande fråga:

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

för att använda denna message_id, kör du uttalandet RAISEERROR enligt följande:

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

här är utgången:

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

för att ta bort ett meddelande från sys.messages använder du den lagrade proceduren sp_dropmessage., Följande uttalande tar till exempel bort meddelande-id 50005:

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

message_text

message_text är ett användardefinierat meddelande med formatering som funktionen printf I C-standardbiblioteket. message_text kan vara upp till 2 047 tecken, 3 sista tecken är reserverade för ellipser (…). Om message_text innehåller 2048 eller mer, kommer det att stympas och är vadderad med en ellips.,

När du angermessage_text använderRAISERROR message_id 50000 för att höja felmeddelandet.

följande exempel använderRAISERROR för att höja ett fel med en meddelandetext:

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

utdata kommer att se ut så här:

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

svårighetsgrad

allvarlighetsgraden är ett heltal mellan 0 och 25, med varje nivå som representerar allvaret av felet.

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

tillstånd

staten är ett heltal från 0 till 255., Om du höjer samma användardefinierade fel på flera platser kan du använda ett unikt tillståndsnummer för varje plats för att göra det lättare att hitta vilken del av koden som orsakar felen. För de flesta implementeringar kan du använda 1.

med alternativ

alternativet kan varaLOG,NOWAIT, ellerSETERROR:

  • WITH LOG loggar felet i felloggen och applikationsloggen för instansen av SQL Server-databasmotorn.,
  • WITH NOWAIT skickar felmeddelandet till klienten omedelbart.
  • WITH SETERROR ställer inERROR_NUMBER och@@ERROR värden till message_id eller 50000, oavsett allvarlighetsgrad.

SQL Server RAISERROR exempel

låt oss ta några exempel på att användaRAISERROR för att få en bättre förståelse.,

a) använda SQL Server RAISERROR med försök CATCH block exempel

i det här exemplet använder viRAISERROR inuti enTRY blocket för att orsaka exekvering att hoppa till den tillhörandeCATCH blocket. Inuti CATCH – blocket använder viRAISERROR för att returnera felinformationen som åberopadeCATCH – blocket.,

här är utgången:

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

B) använda SQL Server RAISERROR-sats med ett dynamiskt meddelandetextsexempel

följande exempel visar hur du använder en lokal variabel för att tillhandahålla meddelandetexten för enRAISERROR – sats:

utgången är som följer:

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

när du ska använda raiserror-satsen

du använderRAISERROR I följande scenarier:

  • felsöka Transact-SQL-kod.
  • returnera meddelanden som innehåller variabel text.
  • granska datavärdena.,
  • få exekveringen att hoppa från ettTRY – block till det associeradeCATCH – blocket.
  • returnera felinformation frånCATCH blocket till uppringarna, antingen ringer batch eller program.

i den här handledningen lär du dig hur du använder SQL ServerRAISERROR-satsen för att generera användardefinierade felmeddelanden.

Share

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *