分享方式:


sp_columns_ex (Transact-SQL)

適用於:SQL Server

針對指定的連結伺服器數據表,傳回數據行資訊,每個數據行一個數據列。 sp_columns_ex只有在指定數據行時,才會傳回特定數據行的數據行資訊。

Transact-SQL 語法慣例

語法

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

引數

[ @table_server = ] 'table_server' 這是要傳回數據行資訊的連結伺服器名稱。 table_server為 sysname,沒有預設值。

[ @table_name = ] 'table_name' 這是要傳回數據行信息的數據表名稱。 table_name為 sysname,預設值為 NULL。

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

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

[ @column_name = ] 'column' 這是要提供資訊的資料庫數據行名稱。 columnsysname,預設值為 NULL。

[ @ODBCVer = ] 'ODBCVer' 這是正在使用的 ODBC 版本。 ODBCVerint,預設值為 2。 這表示 ODBC 第 2 版。 有效值為 2 或 3。 如需版本 2 和 3 之間行為差異的資訊,請參閱 ODBC SQLColumns 規格。

傳回碼值

結果集

資料行名稱 資料類型 描述
TABLE_CAT sysname 數據表或檢視限定符名稱。 各種 DBMS 產品支援數據表的三部分命名(限定符。擁有者name)。 在 SQL Server 中,此資料行代表資料庫名稱。 在某些產品中,它代表數據表資料庫環境的伺服器名稱。 此欄位可以是 NULL。
TABLE_SCHEM sysname 數據表或檢視擁有者名稱。 在 SQL Server 中,此資料行代表建立數據表的資料庫用戶名稱。 此欄位一律會傳回值。
TABLE_NAME sysname 數據表或檢視名稱。 此欄位一律會傳回值。
COLUMN_NAME sysname 傳回TABLE_NAME之每個數據行的數據行名稱。 此欄位一律會傳回值。
DATA_TYPE smallint 對應至 ODBC 類型指標的整數值。 如果這是無法對應至 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 這是數值數據類型的基底。
smallint 指定可為 Null。

1 = NULL 是可能的。

0 = NOT NULL。
言論 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 = 資料行可以包含 NULLS。

NO = 資料行不能包含 NULLS。

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

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

如需詳細資訊,請參閱Microsoft ODBC 檔。

備註

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

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

  • sp_columns_ex遵循分隔標識符的需求。 如需詳細資訊,請參閱< Database Identifiers>。

權限

需要架構的 SELECT 許可權。

範例

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

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

另請參閱

sp_catalogs (Transact-SQL)
sp_foreignkeys (Transact-SQL)
sp_indexes (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_primarykeys (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
系統預存程序 (Transact-SQL)