Transact-SQL 参考

sp_indexes

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

语法

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'

是正在为其请求表信息的运行 Microsoft® SQL Server™ 的链接服务器名。table_server 的数据类型为 sysname,没有默认值。

[@table_name =] 'table_name'

为其提供索引信息的远程表的名称。table_name 的数据类型为 sysname,默认值为 NULL。如果为 NULL,则返回指定数据库中的所有表。

[@table_schema =] 'table_schema'

指定表架构。在 Microsoft SQL Server 环境中,该参数对应于表的所有者,table_schema 的数据类型为 sysname,默认值为 NULL。

[@table_catalog =] 'table_db'

table_name 所在数据库的名称。table_catalog 的数据类型为 sysname,默认值为 NULL。如果为 NULL,则 table_db 的默认值为 master

[@index_name =] 'index_name'

要获取其信息的索引的名称,index 的数据类型为 sysname,默认值为 NULL。

[@is_unique =] 'is_unique'

要获取其信息的索引的类型。is_unique 的数据类型为 bit,默认值为 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 不返回值。

权限

执行权限默认授予 public 角色。

示例

下面的示例从 LONDON1 数据库服务器的 Northwind 数据库的 Employees 表中返回所有索引信息。

EXEC sp_indexes @table_server = 'LONDON1', 
   @table_name = 'Employees', 
   @table_catalog = 'Northwind', 
   @is_unique = 0

请参见

sp_catalogs

sp_column_privileges

sp_foreignkeys

sp_indexes

sp_linkedservers

sp_tables_ex

sp_table_privileges

系统存储过程