sp_columns_ex (Transact-SQL)
傳回指定之連結伺服器資料表的資料行資訊,每個資料行一個資料列。 如果指定了 column,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 產品都支援三部分的資料表命名 (qualifier.owner.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 資料行的傳回值為十進位數。 |
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 欄位時的值。 除了 datetime 和 SQL-92 interval 資料類型,這個資料行與 DATA_TYPE 資料行相同。 這個資料行一律會傳回值。 |
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 及 column 參數會傳遞給這個介面來限制傳回的資料列。
如果指定連結伺服器的 OLE DB 提供者不支援 IDBSchemaRowset 介面的 COLUMNS 資料列集,sp_columns_ex 會傳回空的結果集。
權限
需要結構描述的 SELECT 權限。
備註
sp_columns_ex 遵循分隔識別碼的需求。 如需詳細資訊,請參閱<資料庫識別碼>。
範例
下列範例會傳回 Seattle1 連結伺服器 AdventureWorks2012 資料庫中之 HumanResources.Employee 資料表 JobTitle 資料行的資料類型。
EXEC sp_columns_ex 'Seattle1',
'Employee',
'HumanResources',
'AdventureWorks2012',
'JobTitle';
請參閱
參考
sp_linkedservers (Transact-SQL)