共用方式為


SQLColumns

不論 CatalogNameTableNameColumnName 參數的值是否存在,SQLColumns 都會傳回 SQL_SUCCESS。在這些參數中使用無效值時,SQLFetch 會傳回 SQL_NO_DATA。

[!附註]

若是大數值類型,將會傳回包含 SQL_SS_LENGTH_UNLIMITED 值的所有長度參數。

SQLColumns 可以在靜態伺服器資料指標上執行。嘗試在可更新的 (動態或索引鍵集) 資料指標上執行 SQLColumns 時,將會傳回 SQL_SUCCESS_WITH_INFO,表示資料指標類型已變更。

SQL Server Native Client ODBC 驅動程式透過接受 CatalogName 參數的兩段式名稱,支援連結伺服器上資料表的報告資訊:Linked_Server_Name.Catalog_Name

針對在 TableName 中不使用萬用字元的 ODBC 2.x 應用程式,SQLColumns 會傳回其名稱符合 TableName,而且由目前使用者擁有之任何資料表的相關資訊。如果目前使用者沒有其名稱符合 TableName 參數的資料表,SQLColumns 會傳回其他使用者所擁有的任何資料表相關資訊,其中資料表的名稱符合 TableName 參數。針對使用萬用字元的 ODBC 2.x 應用程式,SQLColumns 會傳回其名稱符合 TableName 的所有資料表。針對 ODBC 3.x 應用程式,不管擁有者是誰,也不管是否使用萬用字元,SQLColumns 都會傳回其名稱符合 TableName 的所有資料表。

下表列出結果集傳回的資料行:

資料行名稱

描述

DATA_TYPE

針對 varchar(max) 資料類型,傳回 SQL_VARCHAR、SQL_VARBINARY 或 SQL_WVARCHAR。

TYPE_NAME

針對 varchar(max)varbinary(max)nvarchar(max) 資料類型,傳回 “varchar”、“varbinary” 或 “nvarchar”。

COLUMN_SIZE

針對 varchar(max) 資料類型,傳回 SQL_SS_LENGTH_UNLIMITED,表示資料行的大小不受限制。

BUFFER_LENGTH

針對 varchar(max) 資料類型,傳回 SQL_SS_LENGTH_UNLIMITED,表示緩衝區的大小不受限制。

SQL_DATA_TYPE

針對 varchar(max) 資料類型,傳回 SQL_VARCHAR、SQL_VARBINARY 或 SQL_WVARCHAR。

CHAR_OCTET_LENGTH

傳回 char 或 binary 資料行的最大長度。傳回 0 表示大小不受限制。

SS_XML_SCHEMACOLLECTION_CATALOG_NAME

傳回定義 XML 結構描述集合名稱所在目錄的名稱。如果找不到目錄名稱,則此變數包含空字串。

SS_XML_SCHEMACOLLECTION_SCHEMA_NAME

傳回定義 XML 結構描述集合名稱所在結構描述的名稱。如果找不到結構描述名稱,則此變數包含空字串。

SS_XML_SCHEMACOLLECTION_NAME

傳回 XML 結構描述集合的名稱。如果找不到名稱,則此變數包含空字串。

SS_UDT_CATALOG_NAME

包含 UDT (使用者定義型別) 之目錄的名稱。

SS_UDT_SCHEMA_NAME

包含 UDT 之結構描述的名稱。

SS_UDT_ASSEMBLY_TYPE_NAME

UDT 的組件完整名稱。

對於 UDT,現有的 TYPE_NAME 資料行用於表示 UDT 的名稱,因此,沒有其他資料行應該加入到 SQLColumnsSQLProcedureColumns 的結果集中。適用於 UDT 資料行或參數的 DATA_TYPE 為 SQL_SS_UDT。

對於參數的 UDT,如果伺服器傳回或要求此資訊,您可以使用以上定義的新驅動程式專用描述項來取得或設定 UDT 的額外中繼資料屬性。

當用戶端連接至 SQL Server 並呼叫 SQLColumns 時,將 NULL 或萬用字元值用於目錄輸入參數將不會從其他目錄傳回資訊。系統只會傳回目前目錄的相關資訊。用戶端可以先呼叫 SQLTables 來判斷所需資料表所在的目錄。接著,用戶端可以在 SQLColumns 的呼叫中,將該目錄值用於目錄輸入參數,即可擷取該資料表中關於資料行的資訊。

SQLColumns 和資料表値參數

SQLColumns 所傳回的結果集取決於 SQL_SOPT_SS_NAME_SCOPE 的設定。如需詳細資訊,請參閱<SQLSetStmtAttr>。系統已針對資料表值參數加入下列資料行:

資料行名稱

資料類型

內容

SS_IS_COMPUTED

Smallint

對於 TABLE_TYPE 中的資料行,如果資料行為計算資料行,這是 SQL_TRUE,否則為 SQL_FALSE。

SS_IS_IDENTITY

Smallint

如果資料行是識別資料行,則為 SQL_TRUE,否則為 SQL_FALSE。

如需有關資料表值參數的詳細資訊,請參閱<資料表值參數 (ODBC)>。

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

如需有關針對日期/時間類型傳回之值的詳細資訊,請參閱<目錄中繼資料>。

如需詳細資訊,請參閱<ODBC 日期/時間的改善 (ODBC)>。

大型 CLR UDT 的 SQLColumns 支援

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

疏鬆資料行的 SQLColumns 支援

系統已經將兩個 SQL Server 專用資料行加入到 SQLColumns 的結果集中:

資料行名稱

資料類型

描述

SS_IS_SPARSE

Smallint

如果資料行為疏鬆資料行,這是 SQL_TRUE,否則為 SQL_FALSE。

SS_IS_COLUMN_SET

Smallint

如果資料行為 column_set 資料行,這是 SQL_TRUE,否則為 SQL_FALSE。

依照 ODBC 規格規定,SS_IS_SPARSE 和 SS_IS_COLUMN_SET 會出現在早於 SQL Server 2008 之 SQL Server 版本中所加入的所有驅動程式專用資料行之前,以及 ODBC 本身所託管的所有資料行之後。

SQLColumns 所傳回的結果集取決於 SQL_SOPT_SS_NAME_SCOPE 的設定。如需詳細資訊,請參閱<SQLSetStmtAttr>。

如需有關 ODBC 中之疏鬆資料行的詳細資訊,請參閱<疏鬆資料行支援 (ODBC)>。

請參閱

概念

其他資源