Share via


SQLGetDiagField

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics 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 語句。 如果截斷, 也會傳回 CHECKPOINT 語句。登入 chkpt。 資料庫選項為開啟。
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 實作詳細資料