sp_columns_ex (Transact-SQL)
更新日期: 2006 年 7 月 17 日
返回指定链接服务器表的列信息,每列一行。如果指定 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 2005 中,此列表示数据库名称。在某些产品中,该列表示表所在数据库环境的服务器名。该字段可以为 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 |
数据的传输大小。 |
DECIMAL_DIGITS |
smallint |
小数点右边的数字个数。 |
NUM_PREC_RADIX |
smallint |
数字数据类型的基数。 |
NULLABLE |
smallint |
指定为空性。 1 = 可以为 NULL。 0 = 不可以为 NULL。 |
REMARKS |
varchar(254) |
该字段总是返回 NULL。 |
COLUMN_DEF |
varchar(254) |
列的默认值。 SQL Server 2005 对目录元数据中的 SQL 表达式进行解码和存储的方式不同于 SQL Server 2000。解码后的表达式的语义等同于原始文本,但是没有语法保证。例如,解码后的表达式中删除了空格。有关详细信息,请参阅 SQL Server 2005 中数据库引擎功能的行为更改。 |
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) |
表中的列的为空性。根据 ISO 规则决定为空性。遵从 ISO SQL 标准的 DBMS 不能返回空字符串。 YES = 列可以包含 NULL。 NO = 列不能包含 NULL。 如果为空性为未知,该列将返回零长度字符串。 该列的返回值与 NULLABLE 列返回的值不同。 |
SS_DATA_TYPE |
tinyint |
扩展存储过程使用的 SQL Server 数据类型。有关详细信息,请参阅数据类型(数据库引擎)。 |
有关更多信息,请参见 Microsoft ODBC 文档。
备注
通过查询对应于 table_server 的 OLE DB 访问接口的 IDBSchemaRowset 接口的 COLUMNS 行集执行 sp_columns_ex。table_name、table_schema、table_catalog 和 column 等参数传递到该接口以限制返回的行。
如果指定链接服务器的 OLE DB 访问接口不支持 IDBSchemaRowset 接口的 COLUMNS 行集,sp_columns_ex 将返回空结果集。
权限
需要对架构的 SELECT 权限。
示例
以下示例返回链接服务器 Seattle1
上 AdventureWorks
数据库中 HumanResources.Employee
表的 Title
列的数据类型。
EXEC sp_columns_ex 'Seattle1',
'Employee',
'HumanResources',
'AdventureWorks',
'Title';
请参阅
参考
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)
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2006 年 7 月 17 日 |
|