教你輕松掌握SQL Server錯誤信息的格式
所有 Microsoft® SQL Server™ 2000 組件都可以向應(yīng)用程序發(fā)出信息、警告或錯誤信息。返回到應(yīng)用程序的大多數(shù) SQL Server 信息都包含如下部分:
◆錯誤號
用來標(biāo)識該消息的一到五位的數(shù)字。用戶定義消息的錯誤號可以包含多個位。
◆描述
Unicode 字符串,包含有關(guān)生成消息的條件的信息。
◆嚴(yán)重級別
表明錯誤條件嚴(yán)重程度的一個一位或兩位的數(shù)字。
◆狀態(tài)
一個一位到三位的數(shù)字,最大值為 127,向 Microsoft 支持工程師和開發(fā)人員表明該消息在 SQL Server 代碼中生成的位置:
◆行號
批處理或存儲過程(包含生成消息的語句)中的一個數(shù)字。行號也可以包含在所執(zhí)行的存儲過程文本中。
多數(shù) SQL Server 消息的錯誤號、描述和嚴(yán)重級別都存儲在 master.dbo.sysmessages 中,狀態(tài)和行號是由發(fā)出消息的代碼動態(tài)生成的。
在客戶 Net-Library、用于 SQL Server 的 Microsoft OLE DB 提供程序或 SQL Server ODBC 驅(qū)動程序中產(chǎn)生的消息不包含其中的一些消息組成部分。
要想看到錯誤信息的示例,請執(zhí)行下列語句:
以下是引用片段:SELECT * FROM ThisObjectDoesNotExist
此語句產(chǎn)生的錯誤具有以下這些部分:
錯誤號:208
嚴(yán)重級別:16
狀態(tài):1
行:1
描述:對象名 'ThisObjectDoesNotExist' 無效。
應(yīng)用程序用來訪問 SQL Server 的所有數(shù)據(jù) API 均返回錯誤號和描述。并非所有 API 都返回嚴(yán)重級別、狀態(tài)或行號。只有編寫 OLE DB 或 ODBC 應(yīng)用程序時使用了由用于 SQL Server 的 Microsoft OLE DB 提供程序和 SQL Server ODBC 驅(qū)動程序表現(xiàn)的 SQL Server 特定的診斷功能,用于 SQL Server 的 Microsoft OLE DB 提供程序和 SQL Server ODBC 驅(qū)動程序才會返回這些部分。
