SQL Server RAISERROR

samenvatting: in deze tutorial leert u hoe u het SQL Server RAISERROR statement gebruikt om door de gebruiker gedefinieerde foutmeldingen te genereren.

Als u een nieuwe toepassing ontwikkelt, moet u in plaats daarvan de instructie THROW gebruiken.,

SQL Server RAISEERROR statement overview

het RAISERROR statement stelt u in staat om uw eigen foutmeldingen te genereren en deze berichten terug te sturen naar de toepassing in hetzelfde formaat als een systeemfout of waarschuwingsbericht gegenereerd door SQL Server Database Engine. Bovendien kunt u met het statement RAISERROR een specifiek bericht-id, niveau van ernst en status instellen voor de foutmeldingen.,

het volgende illustreert de syntaxis van de RAISERROR statement:

laten we de syntaxis van de RAISERROR eens bekijken voor een beter begrip.

message_id

de message_id is een door de gebruiker gedefinieerd foutmeldnummer opgeslagen in de sys.messages catalogusweergave.

om een nieuw door de gebruiker gedefinieerd foutmeldingsnummer toe te voegen, gebruikt u de opgeslagen procedure sp_addmessage. Een door de gebruiker gedefinieerd foutmeldingsnummer moet groter zijn dan 50.000., Standaard gebruikt de instructieRAISERROR de instructiemessage_id 50.000 om een fout te maken.,

De volgende instructie wordt een aangepaste foutbericht naar de sys.messages overzicht:

om Te controleren of het invoegen, gebruikt u de volgende query uit:

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

Voor het gebruik van dit bericht id, voer je het RAISEERROR – instructie als volgt:

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

Hier is de output:

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

Voor het verwijderen van een bericht van de sys.messages, gebruikt u de opgeslagen procedure sp_dropmessage., Bijvoorbeeld, het volgende statement verwijdert het bericht id 50005:

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

message_text

de message_text is een door de gebruiker gedefinieerd bericht met opmaak zoals de printf functie in C standaardbibliotheek. De message_text kan maximaal 2.047 karakters zijn, 3 laatste karakters zijn gereserveerd voor ellipsis (…). Als de message_text 2048 of meer bevat, wordt deze afgekapt en opgevuld met een ellips.,

wanneer u de message_text opgeeft, gebruikt de instructie RAISERROR message_id 50000 om de foutmelding te geven.

het volgende voorbeeld gebruikt de verklaring RAISERROR om een fout bij een berichttekst op te roepen:

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

De uitvoer ziet er als volgt uit:

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

ernst

ernst is een geheel getal tussen 0 en 25, met elk niveau dat de ernst van de fout weergeeft.

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

status

de status is een geheel getal van 0 tot en met 255., Als u dezelfde door de gebruiker gedefinieerde fout op meerdere locaties verhoogt, kunt u een uniek statusnummer voor elke locatie gebruiken om het gemakkelijker te maken om te vinden welk gedeelte van de code de fouten veroorzaakt. Voor de meeste implementaties kunt u 1 gebruiken.

met optie

kan de optie LOG, NOWAIT, of SETERROR:

  • WITH LOG logt de fout in het foutlogboek en de toepassing log in voor de instantie van de SQL Server database engine.,
  • WITH NOWAIT stuurt de foutmelding onmiddellijk naar de client.
  • WITH SETERROR stelt de ERROR_NUMBER en @@ERROR waarden in op message_id of 50000, ongeacht het ernstniveau.

SQL Server raiserror examples

laten we enkele voorbeelden nemen van het gebruik van het RAISERROR statement om een beter begrip te krijgen.,

A) met behulp van SQL Server RAISERROR met try CATCH block voorbeeld

in dit voorbeeld gebruiken we het RAISERROR binnen een TRY blok om ervoor te zorgen dat de uitvoering springt naar het geassocieerde CATCH blok. Binnen hetCATCH blok, gebruiken we hetRAISERROR om de foutinformatie te retourneren die hetCATCH blok aanriep.,

Hier is de output:

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

B) met Behulp van SQL Server RAISERROR-instructie met een dynamische tekst voorbeeld

in Het volgende voorbeeld ziet u hoe u een lokale variabele om de tekst van het bericht voor een RAISERROR verklaring:

De output is als volgt:

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

Wanneer te gebruiken RAISERROR verklaring

gebruik de RAISERROR instructie in de volgende scenario ‘ s:

  • het Oplossen van Transact-SQL-code.
  • geeft berichten terug die variabele tekst bevatten.
  • onderzoek de waarden van de gegevens.,
  • laat de uitvoering springen van een TRY blok naar het geassocieerde CATCH blok.
  • retourneer foutinformatie van hetCATCH blok naar de bellers, die batch of toepassing aanroepen.

In deze tutorial leert u hoe u de SQL Server RAISERROR instructie kunt gebruiken om door de gebruiker gedefinieerde foutmeldingen te genereren.

Share

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *