, Hogyan kell Emelni a Hibák Részben az SQL Server

Vissza: Az SQL Server Tutorial Kezdőknek, illetve Szakemberek

, Hogyan Kell Emelni a Hibák Részben az SQL Server

ez A cikk, Én megyek, hogy megvitassák, hogyan kell emelni a hibák részben az SQL Server néhány példát együtt meg fogjuk vitatni a különböző beállításokat tudjuk használni a Raiserror az SQL Server., Kérjük, olvassa el korábbi cikkünket, ahol a Hibarendszer funkció emelésének valós idejű példáját tárgyaltuk. Ennek a cikknek a részeként a következő mutatókat fogjuk megvitatni.

  1. hogyan lehet kifejezetten hibákat emelni az SQL Serverben?
  2. Raiserror utasítás használata SQL Server
  3. Raise Error using throw statement in SQL Server
  4. mi a különbség a RAISERROR funkció és a throw utasítás között?
  5. a RaiseError utasítás megértése Log opcióval.
  6. hogyan lehet hibázni a hibaüzenet tárolásával a SysMessage táblázatban.,
hogyan lehet kifejezetten hibázni az SQL Serverben?

általában a programban előre meghatározott okokból felmerült hibák, például egy szám nullával történő elosztása, az elsődleges kulcs megsértése, az ellenőrzés megsértése, a referenciális integritás megsértése stb. De ha azt akarjuk, akkor két különböző módon is hibát észlelhetünk a programokban.,

  1. Raiserror nyilatkozat
  2. dobási nyilatkozat (Az SQL Server 2012 új funkciója)

Raiserror szintaxis: Raiserror (errorid/errormsg, súlyosság, állapot)

/p>

dobás szintaxis: dobd errorid, Errormsg, State

példa: Raise hiba segítségével raiserror utasítás SQL Server.

a következő tárolt eljárásban hibát észlelünk, ha az Osztás 1 A RAISERROR utasítás használatával.,

Példa a kivégzés: EXEC spDivideBy1 10, 1

Példa: Emelje fel Hiba segítségével dobja nyilatkozat az SQL Server.

a fenti eljárás a Raiserror helyett a következő dobási nyilatkozat segítségével is átírható.,

végrehajtás: EXEC spDivideBy2 10, 1

mi a különbség a RAISERROR funkció és a dobási utasítás között?

Ha használjuk a két állítás egy program emelése hiba nélkül próbálja elkapni blokkok, RAISERROR nyilatkozat emelés után a hiba továbbra is a végrehajtás a program, mivel dobja nyilatkozat megszűnik a program rendkívül ezen a vonalon., De ha a try block alatt használják őket, akkor mindkettő ugyanúgy viselkedik, mint az, amely közvetlenül ugrik, hogy elkapja a blokkot, ahonnan a hiba felmerült.

A RAISERROR utasítás lehetőséget ad a hibaüzenet súlyosságának meghatározására, míg a dobási nyilatkozat esetében nincs ilyen lehetőség, ahol az összes hibaüzenetnek alapértelmezett súlyossága 16.,

RAISERROR esetén lehetőség van a hibaüzenet rögzítésére a kiszolgáló naplófájljába A with log opció használatával, míg dobási nyilatkozat esetén ezt nem tehetjük meg.

dobás esetén meg kell adnunk mind a hibaüzenetet, mind a hibaüzenetet a hiba felvetéséhez, míg RAISERROR esetén megadhatjuk az azonosítót vagy az üzenetet., Ha az azonosító nincs megadva, akkor az alapértelmezett hibaazonosító 50000, de ha először csak hibaazonosítót akarunk megadni, akkor hozzá kell adnunk a hibaüzenetet a sysmessage táblához egy egyedi azonosító megadásával.

beállítások RAISERROR utasítás:

a Log: ezzel az opcióval a RAISERROR nyilatkozatot tudjuk rögzíteni a hibaüzenetet az SQL Server log fájlt, hogy ha a hibák végzetes adatbázis rendszergazda tud vigyázni kijavítani ezeket a hibákat.,

ha a hiba súlyossága nagyobb, mint 20, A With Log opció megadása kötelező. Ennek teszteléséhez változtassa meg az eljárást spDivideBy1 a raiserror utasítás megváltoztatásával a következőképpen:

RAISERROR (“DIVISOR nem lehet egy”, 16, 1) LOG

az alábbiakban a teljes eljárás

most hajtsa végre az eljárást, amikor a adott hiba növeli tudjuk nézni a hibaüzenetek alatt rögzített SQL server log fájlt. A naplófájl megtekintéséhez., Az object explorer programban LÉPJEN az SQL Server log node menedzsment csomópontba, majd nyissa meg az aktuális naplófájlt duplán kattintva az alábbiak szerint.,g

RAISERROR (‘A SZÁMA %d NEM osztható %d’,16, 1, @No1, @No2)A LOG

Emelése Hibák tárolása a Hibaüzenet SysMessage táblázat:

Tudjuk emelni egy hiba, anélkül, hogy a hibaüzenet RAISERROR nyilatkozatot, de a hely, a hibaüzenet jelenik meg kell határozni a hiba-azonosító, továbbá meg kell határozni a hiba-azonosítót kell vennünk, hogy a hiba id a hibaüzenet SysMessage táblázat segítségével a rendszer meghatározott eljárás “SP_ADDMESSAGE”., 16, ‘osztva EGY HIBA történt’

Most megváltoztathatja az eljárás megváltoztatja a RAISERROR nyilatkozatot, mint a következő

RAISERROR (51000,16, 1)LOG

Törlés a hibaüzenetek a sysmessages táblázat:

Szintaxis: SP_DROPMESSAGE <hiba id>

Példa: EXEC sp_dropMessage 51000

a következő cikkben fogok beszélni a try-catch végrehajtása az SQL Server kezelni a hibaüzenet az SQL Server., Itt, ebben a cikkben, megpróbálom elmagyarázni, hogyan lehet a hibákat kifejezetten az SQL Server lépésről lépésre néhány példával.

Leave a Comment