sp_indexes (Transact-SQL)

适用于:SQL Server

返回指定远程表的索引信息。

Transact-SQL 语法约定

语法

  
sp_indexes [ @table_server = ] 'table_server'   
     [ , [ @table_name = ] 'table_name' ]   
     [ , [ @table_schema = ] 'table_schema' ]   
     [ , [ @table_catalog = ] 'table_db' ]   
     [ , [ @index_name = ] 'index_name' ]   
     [ , [ @is_unique = ] 'is_unique' ]  

参数

[ @table_server= ] 'table_server'
运行要为其请求表信息的 SQL Server 的链接服务器的名称。 table_serversysname,无默认值。

[ @table_name= ] “table_name
要为其提供索引信息的远程表的名称。 table_namesysname,默认值为 NULL。 如果为 NULL,则返回指定数据库中的所有表。

[ @table_schema= ] “table_schema
指定表架构。 在 SQL Server 环境中,这对应于表所有者。 table_schema为 sysname,默认值为 NULL。

[ @table_catalog= ] “table_db
table_name所在的数据库的名称。 table_db为 sysname,默认值为 NULL。 如果为 NULL, table_db默认为 master

[ @index_name= ] “index_name
要为其请求信息的索引的名称。 indexsysname,默认值为 NULL。

[ @is_unique= ] 'is_unique'
要为其返回信息的索引的类型。 is_unique为,默认值为 NULL,可以是以下值之一。

说明
1 返回有关唯一索引的信息。
0 返回有关不唯一的索引的信息。
Null 返回有关所有索引的信息。

结果集

列名称 数据类型 描述
TABLE_CAT sysname 指定表所在的数据库的名称。
TABLE_SCHEM sysname 表的架构。
TABLE_NAME sysname 远程表的名称。
NON_UNIQUE smallint 索引是否唯一:

0 = 唯一

1 = 不唯一
INDEX_QUALIFER sysname 索引所有者的名称。 某些 DBMS 产品允许表所有者以外的用户创建索引。 在 SQL Server 中,此列始终与 TABLE_NAME相同。
INDEX_NAME sysname 索引的名称。
TYPE smallint 索引类型:

0 = 表的统计信息

1 = 聚集

2 = 哈希

3 = 其他
ORDINAL_POSITION int 索引中列的序号位置。 索引中的第一列为 1。 该列始终返回值。
COLUMN_NAME sysname 返回TABLE_NAME的每一列的列的相应名称。
ASC_OR_DESC varchar 排序规则中使用的顺序:

A = 升序

D = 降序

NULL = 不适用

SQL Server 始终返回 A。
CARDINALITY int 表中的行数或索引中的唯一值。
PAGES int 要存储索引或表的页数。
FILTER_CONDITION nvarchar(4000 SQL Server 不返回值。

权限

需要对架构的 SELECT 权限。

示例

以下示例从Employees链接服务器上的数据库Seattle1AdventureWorks2022返回所有索引信息。

EXEC sp_indexes @table_server = 'Seattle1',   
   @table_name = 'Employee',   
   @table_schema = 'HumanResources',  
   @table_catalog = 'AdventureWorks2022';  

另请参阅

分布式查询存储过程 (Transact-SQL)
sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_foreignkeys (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
系统存储过程 (Transact-SQL)