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