Hvordan å Øke Feil Eksplisitt i SQL Server

Tilbake til: SQL Server-Veiledning For Nybegynnere og Profesjonelle

Hvordan Å Øke Feil Eksplisitt i SQL Server

I denne artikkel, Jeg kommer til å diskutere hvordan å øke feil eksplisitt i SQL Server med noen eksempler langs med vi vil også diskutere ulike alternativer som vi kan bruke med Raiserror i SQL Server., Vennligst les vår tidligere artikkel hvor vi diskuterte real-time eksempel på Heve Feil systemet fungerer. Som del av denne artikkelen, vi kommer til å diskutere følgende pekere.

  1. Hvordan å Øke Feil Eksplisitt i SQL Server?
  2. Heve feil ved hjelp av RAISERROR setning i SQL Server
  3. Heve Feil ved bruk av kaste-setning i SQL Server
  4. Hva er forskjellen mellom RAISERROR funksjon og kaste uttalelse?
  5. Forstå RaiseError uttalelse med Logg-alternativet.
  6. Hvordan å Øke Feil Ved lagring av Feilmeldingen i SysMessage bordet.,
Hvordan å Øke Feil Eksplisitt i SQL Server?

Generelt, feil oppvokst i et program på forhåndsdefinerte årsakene som å dele et tall med null, brudd på primærnøkkel, brudd på sjekk, brudd på referanseintegritet, etc. Men hvis vi vil, så kan vi også øke en feil i dine programmer på to forskjellige måter.,

  1. Raiserror uttalelse
  2. kaste uttalelse (ny funksjon i SQL Server-2012)

Raiserror Syntaks: Raiserror (errorid/errormsg, ALVORLIGHETSGRAD, stat)

kaste Syntaks: Kaste errorid, errormsg, statlige

Eksempel: Øke feil ved hjelp av RAISERROR setning i SQL Server.

I følgende lagret Prosedyre, vi oppdrar en feil når divisjon er 1 ved hjelp av RAISERROR uttalelse.,

Eksempel på kjøring: EXEC spDivideBy1 10, 1

Eksempel: Heve Feil ved bruk av kaste-setning i SQL Server.

prosedyren ovenfor kan også være omskrevet ved hjelp av en kaste uttalelse i stedet for Raiserror som følgende.,

UTFØRELSE: EXEC spDivideBy2 10, 1

Hva er forskjellen mellom RAISERROR funksjon og kaste uttalelse?

Hvis vi bruker noen av de to uttalelser i et program for å heve en feil uten å prøve og fange blokker, RAISERROR uttalelse etter å feilen vil fortsette gjennomføringen av programmet mens kaste uttalelse vil avslutte programmet unormalt på den linjen., Men hvis de brukes under prøve å blokkere begge vil oppføre seg på samme måten som vil hoppe direkte til catch-blokken der feilen ble hevet.

Den RAISERROR erklæringen vil gi en mulighet til å angi ALVORLIGHETSGRADEN av feilmelding mens vi ikke har dette alternativet i tilfelle av kaste uttalelse der alle feilmeldinger vil ha en standard ALVORLIGHETSGRADEN av 16.,

I tilfelle av RAISERROR, det er en sjanse for opptak feil-melding til serveren logg-filen ved å bruke med logg alternativet, selv om vi ikke kan gjøre dette i tilfelle av et kast uttalelse.

I tilfelle av kaste, vi trenger å angi både errorid og feilmelding til å heve feil mens i tilfelle av RAISERROR vi kan oppgi en id eller en melding., Hvis id er ikke angitt som standard feil-id er 50000 men hvis vi ønsker å bare oppgir feil id-først må vi legge til feilmeldingen i sysmessage tabell ved å spesifisere en unik id til bordet.

VALG MED RAISERROR UTTALELSE:

Med Loggen: Ved hjelp av dette alternativet i RAISERROR uttalelse kan vi ta opp feilmeldingen i SQL Server loggfil slik at hvis feil er dødelig database administrator kan ta vare på å fikse disse feilene.,

Hvis alvorlig feilen er større enn 20 spesifisere Med Logg alternativet er obligatorisk. For å teste dette ENDRE prosedyren spDivideBy1 ved å endre raiserror uttalelse som følgende

RAISERROR (‘TALET kan IKKE VÆRE EN’, 16, 1) MED LOG

Nedenfor er den fullstendige prosedyre

Nå utføre prosedyren og når gitt feil øker vi kan se feilmeldingen som blir tatt opp under SQL Server logg-fil. For å se loggfilen., I object explorer, kan du gå til ledelsen node SQL Server logg node og åpne den gjeldende logg-fil ved å dobbeltklikke på den, som vist nedenfor.,g

RAISERROR (‘ANTALL %d kan IKKE BLI DELT MED %d’,16, 1, @No1, @No2)MED LOG

Heve Feil Ved lagring av Feilmeldingen i SysMessage tabell:

Vi kan heve en feil uten å gi feilmelding i RAISERROR uttalelse, men i stedet for feilmeldingen vi må oppgi feil-id og til å angi feil id-vi trenger å ta opp som feil-id med feilmelding i SysMessage tabell ved hjelp av systemet definert prosedyre «SP_ADDMESSAGE»., 16, ‘SKILLET VED EN FEIL OPPSTOD’

Nå endre prosedyren ved å endre RAISERROR uttalelse som følgende

RAISERROR (51000,16, 1)MED LOG

Slette feilmeldinger fra sysmessages tabell:

Syntaks: SP_DROPMESSAGE <feil-id>

Eksempel: EXEC sp_dropMessage 51000

I den neste artikkelen, jeg kommer til å diskutere try-catch implementering i SQL Server for å håndtere feil i SQL Server., Her, i denne artikkelen, jeg prøver å forklare Hvordan å øke feil eksplisitt i SQL Server trinn for trinn med noen eksempler.

Leave a Comment