SQLDescribeCol
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Platform System (PDW)
針對執行語句,SQL Server Native Client ODBC 驅動程式不需要查詢伺服器來描述結果集中的數據行。 在此情況下, SQLDescribeCol 不會造成伺服器往返。 如同 SQLColAttribute 和 SQLNumResultCols,在備妥但未執行的語句上呼叫 SQLDescribeCol 會產生伺服器往返。
當 Transact-SQL 語句或語句批次傳回多個結果數據列集時,可能會讓序數參考的數據行產生於個別數據表或參考結果集中完全不同的數據行。 應該針對每個集合呼叫 SQLDescribeCol 。 當結果集變更時,應用程式應該在擷取數據列結果之前重新系結數據值。 如需處理多個結果集傳回的詳細資訊,請參閱 SQLMoreResults。
當已備妥的 SQL 語句批次產生多個結果集時,才會針對第一個結果集報告數據行屬性。
對於大型實值數據類型,DataTypePtr 中傳回的值是SQL_VARCHAR、SQL_VARBINARY或SQL_NVARCHAR。 ColumnSizePtr 中SQL_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)。