Megosztás a következőn keresztül:


Adatbázismotor hiba súlyosságai

A következőkre vonatkozik:SQL Server

Ha az SQL Server adatbázismotor hibát jelez, a hiba súlyossága az SQL Server által tapasztalt probléma típusát jelzi.

Súlyossági szintek

Az alábbi táblázat az SQL Server adatbázismotor által felvetett hibák súlyossági szintjeit sorolja fel és ismerteti.

Súlyossági szint Description
0-9 Olyan tájékoztató üzeneteket jelezhet, amelyek állapotinformációkat adnak vissza, vagy olyan hibákat jeleznek, amelyek nem súlyosak. Az adatbázismotor nem okoz 0–9 súlyosságú rendszerhibákat.
10 Olyan információs üzeneteket jelez, amelyek állapotinformációkat adnak vissza, vagy olyan hibákat jeleznek, amelyek nem súlyosak. Kompatibilitási okokból az adatbázismotor a 10 súlyosságot 0 súlyosságúvá alakítja, mielőtt visszaadja a hibainformációkat a hívó alkalmazásnak.
11-16 Jelezze a felhasználó által kijavítható hibákat.
11 Azt jelzi, hogy az adott objektum vagy entitás nem létezik.
12 Speciális súlyosság azon lekérdezések esetében, amelyek speciális lekérdezési tippek miatt nem használnak zárolást. Bizonyos esetekben az utasítások által végrehajtott olvasási műveletek inkonzisztens adatokat eredményezhetnek, mivel a zárolások nem garantálják a konzisztenciát.
13 Tranzakció holtponti hibáit jelzi.
14 A biztonsággal kapcsolatos hibákat jelzi, például az engedély megtagadva.
15 Szintaxishibákat jelez a Transact-SQL parancsban.
16 A felhasználó által javítható általános hibákat jelzi.
17-19 Jelezze azokat a szoftverhibákat, amelyeket a felhasználó nem tud kijavítani. Tájékoztassa a rendszergazdát a problémáról.
17 Azt jelzi, hogy az utasítás miatt az SQL Server elfogyt az erőforrásokból (például memória, zárolások vagy lemezterület az adatbázis számára), vagy túllépte a rendszergazda által beállított korlátot.
18 Az adatbázismotor szoftverével kapcsolatos problémát jelez, de az utasítás befejeződik, és az adatbázismotor példányával való kapcsolat megmarad. A rendszergazdát minden alkalommal tájékoztatni kell, amikor egy 18-es súlyossági szintű üzenet jelenik meg.
19 Azt jelzi, hogy túllépte a nem konfigurálható adatbázismotor korlátját, és az aktuális kötegfolyamat leállt. A 19 vagy annál magasabb súlyossági szintű hibaüzenetek leálltatják az aktuális köteg végrehajtását. A súlyossági szint 19-es szintű hibái ritkán fordulnak elő, és a rendszergazdának vagy az elsődleges támogatási szolgáltatónak kell kijavítania. Lépjen kapcsolatba a rendszergazdával, ha egy 19-es súlyossági szintű üzenet merül fel. A 19 és 25 közötti súlyossági szintű hibaüzenetek a hibanaplóba lesznek írva.
20-24 Jelezze a rendszerproblémákat, és végzetes hibák, ami azt jelenti, hogy az utasítást vagy köteget futtató adatbázismotor-feladat már nem fut. A tevékenység rögzíti a történtekkel kapcsolatos információkat, majd leáll. A legtöbb esetben az adatbázismotor példányával létesített alkalmazáskapcsolat is megszakadhat. Ha igen, a problémától függően előfordulhat, hogy az alkalmazás nem tud újracsatlakozni.

Az ebben a tartományban lévő hibaüzenetek hatással lehetnek az adatbázis adataihoz hozzáférő összes folyamatra, és azt jelezhetik, hogy egy adatbázis vagy objektum sérült. A 19 és 24 közötti súlyossági szintű hibaüzeneteket a rendszer a hibanaplóba írja.
20 Azt jelzi, hogy egy utasítás hibát észlelt. Mivel a probléma csak az aktuális feladatot érintette, nem valószínű, hogy maga az adatbázis sérült.
21 Azt jelzi, hogy olyan probléma lépett fel, amely az aktuális adatbázis összes feladatát érinti, de nem valószínű, hogy maga az adatbázis sérült.
22 Azt jelzi, hogy az üzenetben megadott táblázatot vagy indexet szoftver- vagy hardverhiba okozta.

A súlyossági szint 22-es szintű hibái ritkán fordulnak elő. Ha ilyen történik, futtassa DBCC CHECKDB annak megállapításához, hogy az adatbázis más objektumai is sérültek-e. Előfordulhat, hogy a probléma csak a puffergyorsítótárban jelentkezik, és nem a lemezen. Ha igen, az adatbázismotor példányának újraindítása kijavítja a problémát. A működés folytatásához újra csatlakoznia kell az adatbázismotor példányához. Ellenkező esetben a probléma kijavításához használja DBCC . Bizonyos esetekben előfordulhat, hogy vissza kell állítania az adatbázist.

Ha az adatbázismotor példányának újraindítása nem oldja meg a problémát, a probléma a lemezen van. Néha a hibaüzenetben megadott objektum megsemmisítése megoldja a problémát. Ha például az üzenet arról számol be, hogy az adatbázismotor példánya talált egy 0 hosszúságú sort egy nemclustered indexben, törölje az indexet, és építse újra.
23 Azt jelzi, hogy a teljes adatbázis integritása hardver- vagy szoftverhiba miatt kérdéses.

A 23. súlyossági szintű hibák ritkán fordulnak elő. Ha ilyen történik, futtassa DBCC CHECKDB a kár mértékét. Előfordulhat, hogy a probléma csak a gyorsítótárban van, és nem a lemezen. Ha igen, az adatbázismotor példányának újraindítása kijavítja a problémát. A működés folytatásához újra csatlakoznia kell az adatbázismotor példányához. Ellenkező esetben a probléma kijavításához használja DBCC . Bizonyos esetekben előfordulhat, hogy vissza kell állítania az adatbázist.
24 Médiahibát jelez. Előfordulhat, hogy a rendszergazdának vissza kell állítania az adatbázist. Előfordulhat, hogy a hardvergyártót is fel kell hívnia.

Felhasználó által definiált hibaüzenet súlyossága

A sp_addmessage katalógusnézethez 1 és 25 sys.messages közötti súlyosságú, felhasználó által definiált hibaüzeneteket adhat hozzá. Ezeket a felhasználó által definiált hibaüzeneteket a következő használhatja: RAISERROR. További információ: sp_addmessage.

RAISERROR 1 és 25 közötti súlyosságú, felhasználó által definiált hibaüzenetek létrehozására használható. RAISERROR hivatkozhat a katalógusnézetben tárolt sys.messages felhasználó által megadott hibaüzenetre, vagy dinamikusan hozhat létre üzenetet. Ha RAISERROR felhasználó által megadott hibaüzenetet sys.messages használ, amikor hibát generál, a megadott súlyosság RAISERROR felülbírálja a megadott sys.messagessúlyosságot. További információ: RAISERROR.

A hiba súlyossága és a TRY... ELKAP

A TRY...CATCH szerkezet az összes olyan 10-nél súlyosabb végrehajtási hibát elkapja, amely nem szünteti meg az adatbázis-kapcsolatot.

A 0 és 10 közötti súlyosságú hibák tájékoztató üzenetek, és nem okoznak végrehajtást a CATCH szerkezet blokkjából TRY...CATCH való ugráshoz.

Az adatbázis-kapcsolatot általában 20 és 25 közötti súlyossággal megszakító hibákat a blokk nem kezeli CATCH , mert a végrehajtás megszakad a kapcsolat leállásakor.

További információ: TRY... CATCH.

Hiba súlyossága lekérése

A ERROR_SEVERITY rendszerfüggvény segítségével lekérheti annak a hibanak a súlyosságát, amely egy CATCH szerkezet blokkjának TRY...CATCH futtatását okozta. ERROR_SEVERITY NULL a blokk hatókörén CATCH kívül eső meghívás esetén ad vissza. További információ: ERROR_SEVERITY.