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_serversysname,没有默认值。

[ @table_name = ] 'table_name' 要为其返回列信息的表的名称。 table_namesysname,默认值为 NULL。

[ @table_schema = ] 'table_schema' 要为其返回列信息的表的架构名称。 table_schemasysname,默认值为 NULL。

[ @table_catalog = ] 'table_catalog' 要为其返回列信息的表的目录名称。 table_catalogsysname,默认值为 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 数字数据类型的基数。
NULLABLE smallint 指定为 Null 性。

1 = 可以为 NULL。

0 = 不可以为 NULL。
备注 varchar (254) 该字段总是返回 NULL。
COLUMN_DEF varchar (254) 列的默认值。
SQL_DATA_TYPE smallint SQL 数据类型在描述符的 TYPE 字段中显示的值。 此列与 DATA_TYPE 列相同,但 datetime 和 SQL-92 间隔 数据类型除外。 该列始终返回值。
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数据类型,由扩展存储过程使用。

有关更多信息,请参见 Microsoft ODBC 文档。

注解

  • sp_columns_ex 是通过查询对应于table_server的 OLE DB 访问接口的 IDBSchemaRowset 接口的 COLUMNS 行集来执行 table_nametable_schematable_catalog参数将传递到此接口以限制返回的行。

  • 如果指定链接服务器的 OLE DB 访问接口不支持 IDBSchemaRowset 接口的 COLUMNS 行集,sp_columns_ex将返回空结果集。

  • sp_columns_ex 遵循分隔标识符的要求。 有关详细信息,请参阅 Database Identifiers

权限

需要对架构的 SELECT 权限。

示例

以下示例返回链接服务器 JobTitle 上的 AdventureWorks2022 数据库中的 HumanResources.Employee 表的 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)