SQLColumns

SQLColumns 會傳回SQL_SUCCESS CatalogNameTableNameColumnName 參數的值是否存在。 當這些參數中使用不正確值時,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

針對 ODBC 2。x 應用程式不使用 TableName中的萬用字元, 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 的名稱;因此,不應該將它的其他資料行新增至 或SQLProcedureColumns的結果集 SQLColumns 。 適用於 UDT 資料行或參數的 DATA_TYPE 為 SQL_SS_UDT。

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

當用戶端連線到SQL Server並呼叫 SQLColumns 時,使用目錄輸入參數的 Null 或萬用字元值將不會從其他目錄傳回信息。 系統只會傳回目前目錄的相關資訊。 用戶端可以先呼叫 SQLTable,以判斷所需資料表所在的目錄。 然後,用戶端可以在對 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) (日期和時間改善

大型 CLR UDT 的 SQLColumns 支援

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

疏鬆資料行的 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版本早于 SQL Server 2008 版的所有驅動程式特定資料行之前,以及 ODBC 本身所授權的所有資料行之後。

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

如需 ODBC 中疏鬆資料行的詳細資訊,請參閱疏 松資料行支援 (ODBC)

另請參閱

SQLColumns 函數
ODBC API 實作詳細資料