Resumé: i denne tutorial vil du lære, hvordan man bruger SQL Server – RAISERROR
erklæring til at generere bruger-defineret fejlmeddelelser.
Hvis du udvikler en ny applikation, skal du bruge THROW
erklæring i stedet.,
SQL Server RAISEERROR erklæring oversigt
RAISERROR
erklæring giver dig mulighed for at generere din egen fejlmeddelelser og vende tilbage til disse meddelelser tilbage til det program, der bruger den det samme format som en system fejl eller advarsel genereret af SQL Server-databaseprogrammet. Derudover giverRAISERROR
– sætningen dig mulighed for at indstille et specifikt meddelelses-id, sværhedsgrad og tilstand for fejlmeddelelserne.,
Det illustrerer følgende syntaks af RAISERROR
erklæring:
Lad os undersøge syntaks af RAISERROR
for bedre forståelse.
message_id
message_id
er en brugerdefineret fejlmeddelelse nummer, der er gemt i sys.messages
katalog udsigt.
for at tilføje et nyt brugerdefineret fejlmeddelelsesnummer skal du bruge den gemte procedure sp_addmessage
. Et brugerdefineret fejlmeddelelsesnummer skal være større end 50.000., Som standard bruger RAISERROR
sætningen message_id
50,000 til at hæve en fejl.,
følgende erklæring tilføjer en brugerdefineret fejl besked til sys.messages
se:
for At kontrollere indsatsen, skal du bruge følgende forespørgsel:
Code language: SQL (Structured Query Language) (sql)
for At bruge denne message_id, skal du udføre RAISEERROR
erklæring, som følger:
Code language: SQL (Structured Query Language) (sql)
Her er output:
Code language: SQL (Structured Query Language) (sql)
for At fjerne en meddelelse fra sys.messages
, kan du bruge den lagrede procedure sp_dropmessage
., For eksempel, følgende erklæring sletter meddelelsen id 50005:
Code language: SQL (Structured Query Language) (sql)
message_text
message_text
er en brugerdefineret besked med formatering som printf
funktion i C standard-bibliotek. message_text
kan være op til 2.047 Tegn, 3 sidste tegn er forbeholdt ellipsis (…). Hvis message_text
indeholder 2048 eller mere, bliver den afkortet og polstret med en ellipse.,
Når du angiver message_text
, bruger RAISERROR
– sætningen message_id 50000 til at hæve fejlmeddelelsen.
Det følgende eksempel bruger RAISERROR
erklæring om, at hæve en fejl med en besked:
Code language: SQL (Structured Query Language) (sql)
resultatet vil se ud som dette:
Code language: SQL (Structured Query Language) (sql)
alvor
alvorsgraden er et heltal mellem 0 og 25, med hvert niveau repræsenterer den alvorlige fejl.
Code language: SQL (Structured Query Language) (sql)
stat
staten er et helt tal fra 0 til 255., Hvis du hæver den samme brugerdefinerede fejl på flere steder, kan du bruge et unikt tilstandsnummer for hvert sted for at gøre det lettere at finde ud af, hvilket afsnit af koden der forårsager fejlene. For de fleste implementeringer kan du bruge 1.
mulighed
Den mulighed kan være LOG
NOWAIT
, eller SETERROR
:
-
WITH LOG
logs fejlen i fejlloggen og anvendelse log for den forekomst af SQL Server-databaseprogrammet., -
WITH NOWAIT
sender fejlmeddelelsen straks til klienten. -
WITH SETERROR
sætERROR_NUMBER
og@@ERROR
værdier til message_id eller 50000, uanset sværhedsgrad niveau.
SQL Server RAISERROR eksempler
Lad os tage nogle eksempler på brug af RAISERROR
erklæring for at få en bedre forståelse.,
A) ved Hjælp af SQL Server RAISERROR med PRØVE CATCH-blok eksempel
I dette eksempel bruger vi RAISERROR
inde i en TRY
bloker for at forårsage udførelse for at hoppe til den tilknyttede CATCH
bloker. Inde i CATCH
– blokken bruger viRAISERROR
for at returnere de fejloplysninger, der påkaldteCATCH
– blokken.,
Her er output:
Code language: SQL (Structured Query Language) (sql)
B) ved Hjælp af SQL Server RAISERROR erklæring med en dynamisk-besked sms-eksempel
følgende eksempel viser, hvordan man bruger en lokal variabel til at give besked til en RAISERROR
erklæring:
output er som følger:
Code language: SQL (Structured Query Language) (sql)
Når at bruge RAISERROR erklæring
Du bruge RAISERROR
erklæring i følgende scenarier:
- Fejlfinding Transact-SQL-kode.
- returner meddelelser, der indeholder variabel tekst.
- Undersøg værdierne af data.,
- Forårsage udførelse at springe fra en
TRY
blok til den tilknyttedeCATCH
bloker. - returner fejloplysninger fra
CATCH
blok til opkalderne, enten ved at ringe til batch eller applikation.
i denne vejledning lærer du, hvordan du bruger s .l Server RAISERROR
erklæring til at generere brugerdefinerede fejlmeddelelser.