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 deERROR_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 geassocieerdeCATCH
blok. - retourneer foutinformatie van het
CATCH
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.