sp_columns_ex (Transact-SQL)
適用於:SQL Server
針對指定的連結伺服器數據表,傳回數據行資訊,每個數據行一個數據列。 sp_columns_ex
如果 指定@column_name ,則只會傳回特定數據行的數據行資訊。
語法
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 版。 有效值為 2
或 3
。 如需版本 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
需要架構的許可權。
範例
下列範例會傳回連結伺服器上資料庫中資料表資料行的數據類型JobTitle
HumanResources.Employee
。AdventureWorks2022
Seattle1
EXEC sp_columns_ex 'Seattle1',
'Employee',
'HumanResources',
'AdventureWorks2022',
'JobTitle';