hur man höjer fel explicit i SQL Server

tillbaka till: SQL Server Tutorial för nybörjare och proffs

hur man höjer fel explicit i SQL Server

I den här artikeln kommer jag att diskutera hur man höjer fel explicit i SQL Server med några exempel tillsammans med vi kommer också att diskutera de olika alternativen som vi kan använda med Raiserror i SQL Server., Läs vår tidigare artikel där vi diskuterade realtidsexemplet på Raise Error system function. Som en del av denna artikel kommer vi att diskutera följande pekare.

  1. Hur tar man upp fel explicit i SQL Server?
  2. höj fel med RAISERROR-satsen i SQL Server
  3. höj fel med throw-satsen i SQL Server
  4. vad är skillnaden mellan RAISERROR-funktionen och throw-satsen?
  5. förstå RaiseError-satsen med Loggalternativ.
  6. hur man höjer fel genom att lagra felmeddelandet i SysMessage-tabellen.,
Hur tar man upp fel explicit i SQL Server?

generellt uppstår fel i ett program på fördefinierade skäl som att dela ett tal med noll, kränkning av primärnyckel, kränkning av kontroll, kränkning av referensintegritet etc. Men om vi vill kan vi också ta upp ett fel i dina program på två olika sätt.,

  1. Raiserror statement
  2. kasta statement (nytt inslag i SQL Server 2012)

Raiserror Syntax: Raiserror (errorid/errormsg, SEVERITY, state)

kasta syntax: kasta errorid, errormsg, tillstånd

exempel: höja fel med hjälp av raiserror-satsen i SQL Server.

I följande lagrade procedur uppstår ett fel när divisionen är 1 med hjälp av RAISERROR-satsen.,

exempel på utförande: EXEC spDivideBy1 10, 1

exempel: höj fel med hjälp av kasta uttalande i SQL Server.

ovanstående procedur kan också skrivas om med hjälp av ett kasta uttalande i stället för Raiserror som följer.,

utförande: EXEC spDivideBy2 10, 1

vad är skillnaden mellan RAISERROR funktion och kasta uttalande?

om vi använder någon av de två uttalandena i ett program för att höja ett fel utan försök och fånga block, kommer RAISERROR-uttalandet efter att ha höjt felet fortfarande att fortsätta genomförandet av programmet medan kasta-uttalandet kommer att avbryta programmet onormalt på den raden., Men om de används under försök block båda kommer att bete sig på samma sätt som är kommer att hoppa direkt för att fånga blocket från där felet fick upp.

RAISERROR-satsen ger en möjlighet att ange hur allvarligt felmeddelandet är, medan vi inte har det här alternativet vid kasta-uttalande där alla felmeddelanden kommer att ha en standardnivå på 16.,

vid RAISERROR finns det en chans att spela in felmeddelandet i serverloggfilen genom att använda alternativet med logg, medan vi inte kan göra detta vid ett kasta-uttalande.

vid kast måste vi ange både felmeddelandet och felmeddelandet för att höja felet, medan vi vid RAISERROR kan ange antingen id eller meddelande., Om id: t inte anges är standardfel-ID 50000 men om vi bara vill ange fel-id måste vi först lägga till felmeddelandet i sysmessage-tabellen genom att ange ett unikt id i tabellen.

alternativ med RAISERROR-sats:

med Log: genom att använda det här alternativet i RAISERROR-satsen kan vi spela in felmeddelandet i SQL Server-loggfilen så att om felen är dödlig Databasadministratör kan ta hand om att reparera dessa fel.,

om svårighetsgraden av felet är större än 20 att ange alternativet med logg är obligatoriskt. För att testa detta ändra proceduren spDivideBy1 genom att ändra raiserror-satsen som följer

RAISERROR (’DIVISOR CANNOT BE ONE’, 16, 1) med LOG

nedan är det fullständiga förfarandet

utför nu proceduren och när det angivna felet ökar kan vi titta på felmeddelandena som spelats in under SQL Server loggfil. För att visa loggfilen., I object explorer, gå till management node SQL Server log node och öppna den aktuella loggfilen genom att dubbelklicka på den som visas nedan.,g

RAISERROR (’numret %D kan inte divideras med %d’,16, 1, @No1, @No2)med LOG

öka fel genom att lagra felmeddelandet i Sysmessagetabellen:

vi kan höja ett fel utan att ge felmeddelandet i raiserror-uttalandet men i stället för felmeddelandet behöver vi ange fel-ID och för att ange fel-ID måste vi spela in det fel-ID med felmeddelandet i sysmessage-tabellen genom att använda den SYSTEMDEFINIERADE proceduren ”sp_addmessage”., 16, ’DELA AV ETT FEL uppstod’

Nu ändra förfarandet genom att ändra RAISERROR uttalande enligt följande

RAISERROR (51000,16, 1)LOGGA in

ta Bort felmeddelanden från sysmessages tabell:

Syntax: SP_DROPMESSAGE <fel id>

Exempel: EXEC sp_dropMessage 51000

I nästa artikel kommer jag att diskutera try-catch genomförande i SQL Server för att hantera fel i SQL Server., Här, i den här artikeln, jag försöker förklara hur man höja fel explicit i SQL Server steg för steg med några exempel.

Leave a Comment