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