SQLDescribeCol

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

針對執行語句,SQL Server Native Client ODBC 驅動程式不需要查詢伺服器來描述結果集中的數據行。 在此情況下, SQLDescribeCol 不會造成伺服器往返。 如同 SQLColAttributeSQLNumResultCols,在備妥但未執行的語句上呼叫 SQLDescribeCol 會產生伺服器往返。

當 Transact-SQL 語句或語句批次傳回多個結果數據列集時,可能會讓序數參考的數據行產生於個別數據表或參考結果集中完全不同的數據行。 應該針對每個集合呼叫 SQLDescribeCol 。 當結果集變更時,應用程式應該在擷取數據列結果之前重新系結數據值。 如需處理多個結果集傳回的詳細資訊,請參閱 SQLMoreResults

當已備妥的 SQL 語句批次產生多個結果集時,才會針對第一個結果集報告數據行屬性。

對於大型實值數據類型,DataTypePtr傳回的值是SQL_VARCHAR、SQL_VARBINARY或SQL_NVARCHAR。 ColumnSizePtrSQL_SS_LENGTH_UNLIMITED的值表示大小為「無限制」。

從 SQL Server 2012 (11.x) 開始的資料庫引擎改進可讓 SQLDescribeCol 取得預期結果的更精確描述。 這些更精確的結果可能與舊版 SQL Server 中 SQLDescribeCol 所傳回的值不同。 如需詳細資訊,請參閱中繼資料探索

增強日期和時間功能的 SQLDescribeCol 支援

針對日期/時間類型傳回的值如下所示:

屬性 DataTypePtr ColumnSizePtr DecimalDigitsPtr
Datetime SQL_TYPE_TIMESTAMP 23 3
smalldatetime SQL_TYPE_TIMESTAMP 16 0
date SQL_TYPE_DATE 10 0
time SQL_SS_TIME2 8, 10..16 0..7
datetime2 SQL_TYPE_TIMESTAMP 19, 21..27 0..7
datetimeoffset SQL_SS_TIMESTAMPOFFSET 26, 28..34 0..7

如需詳細資訊,請參閱 日期和時間改善 (ODBC)

大型 CLR UDT 的 SQLDescribeCol 支援

SQLDescribeCol 支援大型 CLR 使用者定義型別 (UDT)。 如需詳細資訊,請參閱 大型CLR使用者定義型別 (ODBC)

另請參閱

SQLDescribeCol 函式
ODBC API 實作詳細數據