共用方式為


sp_columns_ex (Transact-SQL)

適用於:SQL Server

針對指定的連結伺服器數據表,傳回數據行資訊,每個數據行一個數據列。 sp_columns_ex 如果 指定@column_name ,則只會傳回特定數據行的數據行資訊。

Transact-SQL 語法慣例

語法

sp_columns_ex
    [ @table_server = ] N'table_server'
    [ , [ @table_name = ] N'table_name' ]
    [ , [ @table_schema = ] N'table_schema' ]
    [ , [ @table_catalog = ] N'table_catalog' ]
    [ , [ @column_name = ] N'column_name' ]
    [ , [ @ODBCVer = ] ODBCVer ]
[ ; ]

引數

[ @table_server = ] N'table_server'

要為其傳回數據行資訊的連結伺服器名稱。 @table_server為 sysname,沒有預設值。

[ @table_name = ] N'table_name'

要傳回數據行信息的數據表名稱。 @table_name為 sysname 預設值為 NULL

[ @table_schema = ] N'table_schema'

要傳回數據行信息的數據表架構名稱。 @table_schema為 sysname,預設值為 NULL

[ @table_catalog = ] N'table_catalog'

要傳回數據行信息的數據表目錄名稱。 @table_catalog為 sysname,預設值為 NULL

[ @column_name = ] N'column_name'

要提供資訊的資料庫數據列名稱。 @column_name為 sysname,預設值為 NULL

[ @ODBCVer = ] ODBCVer

正在使用的 ODBC 版本。 @ODBCVer為 int,預設值為 2。 這表示 ODBC 第 2 版。 有效值為 23。 如需版本 2 和 3 之間行為差異的詳細資訊,請參閱 ODBC SQLColumns 規格。

傳回碼值

無。

結果集

資料行名稱 資料類型 描述
TABLE_CAT sysname 數據表或檢視限定符名稱。 各種 DBMS 產品支援數據表的三部分命名(<qualifier>.<owner>.<name>)。 在 SQL Server 中,此資料行代表資料庫名稱。 在某些產品中,它代表數據表資料庫環境的伺服器名稱。 這個欄位可以是 NULL
TABLE_SCHEM sysname 數據表或檢視擁有者名稱。 在 SQL Server 中,此資料行代表建立數據表的資料庫用戶名稱。 此欄位一律會傳回值。
TABLE_NAME sysname 數據表或檢視名稱。 此欄位一律會傳回值。
COLUMN_NAME sysname 傳回之每個數據行的數據 TABLE_NAME 行名稱。 此欄位一律會傳回值。
DATA_TYPE smallint 對應至 ODBC 類型指標的 int 值。 如果這是無法對應至 ODBC 類型的資料類型, 這個值為 NULL。 原生數據類型名稱會在數據行中 TYPE_NAME 傳回。
TYPE_NAME varchar(13) 表示數據類型的字串。 基礎 DBMS 會顯示此資料類型名稱。
COLUMN_SIZE int 有效位數。 數據行的 PRECISION 傳回值位於基底 10 中。
BUFFER_LENGTH int 數據傳輸大小。1
DECIMAL_DIGITS smallint 小數點右邊的數位數。
NUM_PREC_RADIX smallint 數值數據類型的基底。
NULLABLE smallint 指定可為 Null。

1 = NULL 是可能的。
0 = NOT NULL.
REMARKS varchar(254) 此欄位一律會傳 NULL回 。
COLUMN_DEF varchar(254) 數據行的預設值。
SQL_DATA_TYPE smallint SQL 數據類型的值,因為它出現在 TYPE 描述元的欄位中。 此數據行與數據DATA_TYPE行相同,但 datetime 和 SQL-92 interval 數據類型除外。 這個資料行一律會傳回值。
SQL_DATETIME_SUB smallint datetime 和 SQL-92 interval 數據類型的子類型程式碼。 對於其他資料類型,這個資料行會傳 NULL回 。
CHAR_OCTET_LENGTH int 字元或整數數據類型數據行的位元組長度上限。 對於所有其他資料類型,這個資料行會傳 NULL回 。
ORDINAL_POSITION int 數據表中數據行的序數位置。 數據表中的第一個數據行是 1。 這個資料行一律會傳回值。
IS_NULLABLE varchar(254) 數據表中數據行的 Null 屬性。 遵循 ISO 規則來判斷可為 Null 性。 符合 ISO SQL 標準的 DBMS 無法傳回空字串。

YES = 資料列可以包含 NULL
NO = 資料列不能包含 NULL

如果 Null 屬性未知,此資料行會傳回長度為零的字串。

針對此數據行傳回的值與針對 NULLABLE 數據行傳回的值不同。
SS_DATA_TYPE tinyint 擴充預存程式所使用的 SQL Server 數據類型。

如需詳細資訊,請參閱 ODBC 概觀

備註

  • sp_columns_ex會藉由查詢COLUMNS對應至@table_server之 OLE DB 提供者介面的數據列集IDBSchemaRowset來執行。 @table_name、@table_schema@table_catalog@column_name參數會傳遞至這個介面,以限制傳回的數據列。

  • sp_columns_ex 如果指定的連結伺服器的 OLE DB 提供者不支援 COLUMNS 介面的數據 IDBSchemaRowset 列集,則傳回空的結果集。

  • sp_columns_ex 遵循分隔標識碼的需求。 如需詳細資訊,請參閱 資料庫標識符

權限

SELECT需要架構的許可權。

範例

下列範例會傳回連結伺服器上資料庫中資料表資料行的數據類型JobTitleHumanResources.EmployeeAdventureWorks2022 Seattle1

EXEC sp_columns_ex 'Seattle1',
    'Employee',
    'HumanResources',
    'AdventureWorks2022',
    'JobTitle';