sp_columns_ex (Transact-SQL)
適用於:SQL Server
針對指定的連結伺服器資料表,傳回資料行資訊,每個資料行一個資料列。 sp_columns_ex 只有在指定資料行時 ,才會傳回特定資料行的資料行 資訊。
語法
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'
這是要提供資訊的資料庫資料行名稱。 column 是 sysname ,預設值為 Null。
[ @ODBCVer = ] 'ODBCVer'
這是正在使用的 ODBC 版本。 ODBCVer 為 int ,預設值為 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_schema 、 table_catalog 和資料 行 參數會傳遞至這個介面,以限制傳回的資料列。
如果指定的連結伺服器的 OLE DB 提供者不支援 IDBSchemaRowset 介面的 COLUMNS 資料列集,則sp_columns_ex會傳回空的結果集。
sp_columns_ex 遵循分隔識別碼的需求。 如需詳細資訊,請參閱< Database Identifiers>。
權限
需要架構的 SELECT 許可權。
範例
下列範例會傳回連結伺服器上資料庫中資料表資料行的資料類型 JobTitle
HumanResources.Employee
。 AdventureWorks2022
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)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應