SQL Server RAISERROR (Dansk)

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æt ERROR_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 tilknyttede CATCH 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.

Share

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *