SQLGetDiagField
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
SQL Server Native Client ODBC 驅動程式會指定 SQLGetDiagField 的下列其他診斷字段。 這些欄位支援 SQL Server 應用程式的豐富錯誤報告,而且可在連線的 ODBC 連接句柄和 ODBC 語句句柄上產生的所有診斷記錄中使用。 欄位定義於 sqlncli.h 中。
診斷記錄欄位 | 描述 |
---|---|
SQL_DIAG_SS_LINE | 報告產生錯誤的預存程式行號。 只有在SQL_DIAG_SS_PROCNAME傳回值時,SQL_DIAG_SS_LINE的值才有意義。 此值會以不帶正負號的16位整數傳回。 |
SQL_DIAG_SS_MSGSTATE | 錯誤訊息的狀態。 如需錯誤訊息狀態的相關信息,請參閱 RAISERROR。 此值會以帶正負號的32位整數傳回。 |
SQL_DIAG_SS_PROCNAME | 適當時產生錯誤的預存程式名稱。 值會以字元字串的形式傳回。 字串的長度(以字元為單位)取決於 SQL Server 的版本。 呼叫 SQLGetInfo 以要求SQL_MAX_PROCEDURE_NAME_LEN的值來判斷。 |
SQL_DIAG_SS_SEVERITY | 相關聯錯誤訊息的嚴重性層級。 此值會以帶正負號的32位整數傳回。 |
SQL_DIAG_SS_SRVNAME | 發生錯誤之伺服器的名稱。 值會以字元字串的形式傳回。 字串的長度(以字元為單位)是由 sqlncli.h 中的SQL_MAX_SQLSERVERNAME巨集所定義。 |
包含字元數據、SQL_DIAG_SS_PROCNAME和SQL_DIAG_SS_SRVNAME的 SQL Server 特定診斷欄位,會將該數據以 Null 終止、ANSI 或 Unicode 字串的形式傳回用戶端。 如有必要,字元寬度應調整字元計數。 或者,TCHAR 或 SQLTCHAR 等可攜式 C 數據類型可用來確保正確的程式可變長度。
SQL Server Native Client ODBC 驅動程式會報告下列其他動態函式程式碼,以識別上次嘗試的 SQL Server 語句。 動態函式程式代碼會在診斷記錄集的標頭 (記錄 0) 中傳回,因此可在每次執行時使用(成功或不成功)。
動態函式程序代碼 | 來源 |
---|---|
SQL_DIAG_DFC_SS_ALTER_DATABASE | ALTER DATABASE 陳述式 |
SQL_DIAG_DFC_SS_CHECKPOINT | CHECKPOINT 語句 |
SQL_DIAG_DFC_SS_CONDITION | 語句的 WHERE 或 HAVING 子句中出現錯誤。 |
SQL_DIAG_DFC_SS_CREATE_DATABASE | CREATE DATABASE 陳述式 |
SQL_DIAG_DFC_SS_CREATE_DEFAULT | CREATE DEFAULT 語句 |
SQL_DIAG_DFC_SS_CREATE_PROCEDURE | CREATE PROCEDURE 語句 |
SQL_DIAG_DFC_SS_CREATE_RULE | CREATE RULE 語句 |
SQL_DIAG_DFC_SS_CREATE_TRIGGER | CREATE TRIGGER 語句 |
SQL_DIAG_DFC_SS_CURSOR_DECLARE | DECLARE CURSOR 語句 |
SQL_DIAG_DFC_SS_CURSOR_OPEN | OPEN 陳述式 |
SQL_DIAG_DFC_SS_CURSOR_FETCH | FETCH 陳述式 |
SQL_DIAG_DFC_SS_CURSOR_CLOSE | CLOSE 陳述式 |
SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR | DEALLOCATE 陳述式 |
SQL_DIAG_DFC_SS_DBCC | DBCC 語句 |
SQL_DIAG_DFC_SS_DENY | DENY 語句 |
SQL_DIAG_DFC_SS_DROP_DATABASE | DROP DATABASE 語句 |
SQL_DIAG_DFC_SS_DROP_DEFAULT | DROP DEFAULT 語句 |
SQL_DIAG_DFC_SS_DROP_PROCEDURE | DROP PROCEDURE 語句 |
SQL_DIAG_DFC_SS_DROP_RULE | DROP RULE 語句 |
SQL_DIAG_DFC_SS_DROP_TRIGGER | DROP TRIGGER 語句 |
SQL_DIAG_DFC_SS_DUMP_DATABASE | BACKUP 或 DUMP DATABASE 語句 |
SQL_DIAG_DFC_SS_DUMP_TABLE | DUMP TABLE 語句 |
SQL_DIAG_DFC_SS_DUMP_TRANSACTION | BACKUP 或 DUMP TRANSACTION 語句。 如果 chkpt 上的trunc. log,也會 傳回 CHECKPOINT 語句。 資料庫選項為開啟。 |
SQL_DIAG_DFC_SS_GOTO | GOTO 流程控制語句 |
SQL_DIAG_DFC_SS_INSERT_BULK | INSERT BULK 語句 |
SQL_DIAG_DFC_SS_KILL | KILL 語句 |
SQL_DIAG_DFC_SS_LOAD_DATABASE | LOAD 或 RESTORE DATABASE 語句 |
SQL_DIAG_DFC_SS_LOAD_HEADERONLY | LOAD 或 RESTORE HEADERONLY 語句 |
SQL_DIAG_DFC_SS_LOAD_TABLE | LOAD TABLE 語句 |
SQL_DIAG_DFC_SS_LOAD_TRANSACTION | LOAD 或 RESTORE TRANSACTION 語句 |
SQL_DIAG_DFC_SS_PRINT | PRINT 語句 |
SQL_DIAG_DFC_SS_RAISERROR | RAISERROR 陳述式 |
SQL_DIAG_DFC_SS_READTEXT | READTEXT 語句 |
SQL_DIAG_DFC_SS_RECONFIGURE | RECONFIGURE 語句 |
SQL_DIAG_DFC_SS_RETURN | RETURN control-of-flow 語句 |
SQL_DIAG_DFC_SS_SELECT_INTO | SELECT INTO 陳述式 |
SQL_DIAG_DFC_SS_SET | SET 語句 (泛型,所有選項) |
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT | SET IDENTITY_INSERT 語句 |
SQL_DIAG_DFC_SS_SET_ROW_COUNT | SET ROWCOUNT 語句 |
SQL_DIAG_DFC_SS_SET_STATISTICS | SET STATISTICS IO 或 SET STATISTICS TIME 語句 |
SQL_DIAG_DFC_SS_SET_TEXTSIZE | SET TEXTSIZE 語句 |
SQL_DIAG_DFC_SS_SETUSER | SETUSER 語句 |
SQL_DIAG_DFC_SS_SET_XCTLVL | SET TRANSACTION ISOLATION LEVEL 語句 |
SQL_DIAG_DFC_SS_SHUTDOWN | SHUTDOWN 語句 |
SQL_DIAG_DFC_SS_TRANS_BEGIN | BEGIN TRAN 語句 |
SQL_DIAG_DFC_SS_TRANS_COMMIT | COMMIT TRAN 語句 |
SQL_DIAG_DFC_SS_TRANS_PREPARE | 準備認可分散式交易 |
SQL_DIAG_DFC_SS_TRANS_ROLLBACK | ROLLBACK TRAN 語句 |
SQL_DIAG_DFC_SS_TRANS_SAVE | SAVE TRAN 語句 |
SQL_DIAG_DFC_SS_TRUNCATE_TABLE | TRUNCATE TABLE 語句 |
SQL_DIAG_DFC_SS_UPDATE_STATISTICS | UPDATE STATISTICS 語句 |
SQL_DIAG_DFC_SS_UPDATETEXT | UPDATETEXT 語句 |
SQL_DIAG_DFC_SS_USE | USE 語句 |
SQL_DIAG_DFC_SS_WAITFOR | WAITFOR 流程控制語句 |
SQL_DIAG_DFC_SS_WRITETEXT | WRITETEXT 語句 |
SQLGetDiagField 和數據表值參數
SQLGetDiagField 可用來擷取兩個診斷欄位:SQL_DIAG_SS_TABLE_COLUMN_NUMBER和SQL_DIAG_SS_TABLE_ROW_NUMBER。 這些欄位可協助您判斷哪個值導致與診斷記錄相關聯的錯誤或警告。
如需資料表值參數的詳細資訊,請參閱 資料表值參數 (ODBC) 。