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'
要为其提供信息的数据库列的名称。 列 为 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 列的返回值以 10 为基数。 |
BUFFER_LENGTH | int | 数据的传输大小。1 |
DECIMAL_DIGITS | smallint | 小数点右边的数字位数。 |
NUM_PREC_RADIX | smallint | 数字数据类型的基数。 |
空 | smallint | 指定为 Null 性。 1 = 可以为 NULL。 0 = 不可以为 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 = 列可以包含 NULL。 NO = 列不能包含 NULL。 如果为 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
上的 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)
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈