共用方式為


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)

另請參閱

SQLGetDiagField 函式
ODBC API 實作詳細數據