SQL Server RAISERROR (Norsk)

Oppsummering: i denne opplæringen vil du lære hvordan du bruker SQL Server RAISERROR uttalelse for å generere egendefinerte feilmeldinger.

Hvis du utvikle en ny applikasjon, bør du bruke THROW uttalelse i stedet.,

SQL Server RAISEERROR uttalelse oversikt

RAISERROR uttalelse kan du generere dine egne feilmeldinger, og gå tilbake disse meldingene tilbake til programmet ved hjelp av samme format som et system advarsel eller feilmelding genereres av SQL Server-Database Motor. I tillegg RAISERROR uttalelse lar deg angi en bestemt melding id, alvorlighetsgrad, og staten for feilmeldinger.,

følgende illustrerer syntaks for RAISERROR uttalelse:

La oss se nærmere på syntaks for RAISERROR for bedre forståelse.

message_id

message_id er en bruker-definert feilmelding nummer som er lagret i sys.messages catalog view.

for Å legge til en ny bruker-definert feilmelding nummer, bruker du den lagrede prosedyren sp_addmessage. En bruker-definert feilmelding nummer skal være større enn 50 000., Som standard RAISERROR uttalelse bruker message_id 50 000 for å heve en feil.,

følgende uttalelse legger til en egendefinert feilmelding til sys.messages vis:

for Å bekrefte sette inn, kan du bruke følgende spørring:

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

for Å bruke denne message_id du kjøre RAISEERROR uttalelse som følger:

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

Her er resultatet:

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

for Å fjerne meldingen fra sys.messages du kan bruke den lagrede prosedyren sp_dropmessage., For eksempel, følgende uttalelse sletter meldingen id 50005:

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

message_text

message_text er en bruker-definert melding med formatering som printf funksjon i C standard bibliotek. message_text kan være opp til 2,047 tegn, 3 siste tegn som er reservert for ellipse (…). Hvis message_text inneholder 2048 eller mer, vil det bli avkortet og er polstret med en ellipse.,

Når du angi message_text, RAISERROR uttalelse bruker message_id 50000 å heve feilmelding.

dette eksemplet bruker RAISERROR statement å heve en feil med en melding tekst:

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

output vil se ut som dette:

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

alvorlighetsgraden

alvorlighetsgraden er et heltall mellom 0 og 25, med hvert nivå representerer alvorlige feil.

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

state

staten er et heltall fra 0 til 255., Hvis du hever samme bruker-definert feil på flere steder, kan du bruke en unik staten nummer for hver plassering er å gjøre det enklere å finne hvilken del av koden som er årsaken til feil. For de fleste implementeringer, kan du bruke 1.

MED alternativ

alternativet kan være LOG, NOWAIT, eller SETERROR:

  • WITH LOG logger feilen i feilloggen og programloggen for forekomst av SQL Server-Database Motor.,
  • WITH NOWAIT sender feilmelding til kunden umiddelbart.
  • WITH SETERROR angir ERROR_NUMBER og @@ERROR verdiene til message_id eller 50000, uavhengig av alvorlighetsgrad.

SQL Server RAISERROR eksempler

La oss ta noen eksempler på bruk av RAISERROR uttalelse for å få en bedre forståelse.,

A) ved Hjelp av SQL Server RAISERROR med PRØVE å FANGE blokkere eksempel

I dette eksempelet bruker vi RAISERROR inne i en TRY blokker for å føre til kjøring av å hoppe til forbundet CATCH blokker. Inni CATCH blokker, bruker vi RAISERROR for å returnere feil informasjon som er påberopt CATCH blokker.,

Her er resultatet:

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

B) ved Hjelp av SQL Server RAISERROR uttalelse med en dynamisk melding tekst eksempel

følgende eksempel viser hvordan du bruker en lokal variabel for å gi melding tekst for en RAISERROR uttalelse:

output er som følger:

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

Når du skal bruke RAISERROR uttalelse

Du bruker RAISERROR uttalelse i følgende scenarier:

  • Feilsøke Handle-SQL-kode.
  • gå Tilbake meldinger som inneholder variabel tekst.
  • Undersøke verdier av data.,
  • Føre til kjøring av å hoppe fra en TRY blokker til forbundet CATCH blokker.
  • gå Tilbake feil informasjon fra CATCH blokker til innringere, enten ringe batch eller program.

I denne opplæringen vil du lære hvordan du bruker SQL Server RAISERROR uttalelse for å generere egendefinerte feilmeldinger.

Share

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *