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


Az adatbázismotor hibáinak ismertetése

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

A Microsoft SQL Server adatbázismotor által felvetett hibák az alábbi táblázatban ismertetett attribútumokkal rendelkeznek.

Attribútum Leírás
Hibaszám Minden hibaüzenet egyedi hibaszámmal rendelkezik.
Hibaüzenet karakterlánc A hibaüzenet diagnosztikai információkat tartalmaz a hiba okáról. Számos hibaüzenet helyettesítő változókkal rendelkezik, amelyekbe a rendszer beszúrja a hibát létrehozó objektum nevét.
Súlyosság A súlyosság azt jelzi, hogy milyen súlyos a hiba. Az alacsony súlyossággal (például 1 vagy 2) rendelkező hibák információs üzenetek vagy alacsony szintű figyelmeztetések. A nagy súlyosságú hibák olyan problémákat jeleznek, amelyeket a lehető leghamarabb meg kell oldani. A súlyosságokkal kapcsolatos további információkért lásd adatbázismotor hiba súlyosságát.
Állam Egyes hibaüzenetek az adatbázismotor kódjában több ponton is elővehetők. Például egy 1105-ös hiba több különböző feltétel esetén is felmerülhet. A hibát okozó minden egyes feltétel egyedi állapotkódot rendel hozzá.

Ha olyan adatbázisokat tekint meg, amelyek információkat tartalmaznak az ismert problémákról, például a Microsoft Tudásbázisról, az állapotszám segítségével megállapíthatja, hogy a rögzített probléma megegyezik-e a tapasztalt hibával. Ha például egy tudásbáziscikk egy 1105-ös hibát ír le, amely 2-es állapotú, és a kapott 1105-ös hibaüzenet 3-os állapotú, akkor a hiba oka valószínűleg más, mint amit a cikkben jelentett.

A Microsoft támogatási mérnökei a hiba állapotkódját is használhatják annak a forráskódnak a helyének megkereséséhez, ahol a hibakód felmerül. Ezek az információk további ötleteket adhatnak a probléma diagnosztizálásához.
Eljárás neve Annak a tárolt eljárásnak vagy eseményindítónak a neve, amelyben a hiba történt.
Sorszám Azt jelzi, hogy egy kötegben, tárolt eljárásban, eseményindítóban vagy függvényben melyik utasítás generálta a hibát.

Az adatbázismotor egy példányának rendszer- és felhasználó által definiált hibaüzenetei a sys.messages katalógusnézetben találhatók. A RAISERROR utasítás használatával felhasználó által megadott hibákat adhat vissza egy alkalmazásnak.

Az alapszintű hibaattribútumokat minden adatbázis API,például a Microsoft .NET-keretrendszer SQLClient névtér, ActiveX Data Objects (ADO), OLE DB és Open Database Connectivity (ODBC) jelenti. Ez az információ tartalmazza a hibaszámot és az üzenetsztringet. Azonban nem minden API jelenti az összes többi hibaattribútumot.

A TRY...CATCH szerkezet TRY blokkjának hatókörében fellépő hibáról a Transact-SQL kódban információ szerezhető a társított CATCH blokk hatókörében az olyan függvények használatával, mint az ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY és ERROR_STATE. További információ: TRY... CATCH (Transact-SQL).

Példák

Az alábbi példa lekérdezi a sys.messages katalógusnézetet, hogy visszaadja a rendszer és a felhasználó által definiált hibaüzenetek listáját az adatbázismotorban angol nyelvű (1033) szövegekkel.

SELECT  
    message_id,  
    language_id,  
    severity,  
    is_event_logged,  
    text  
  FROM sys.messages  
  WHERE language_id = 1033;  

További információ: sys.messages (Transact-SQL).

Lásd még:

sys.messages (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
TRY... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)