sp_indexes (Transact-SQL)
适用范围:SQL Server
返回指定的远程表的索引信息。
语法
sp_indexes
[ @table_server = ] N'table_server'
[ , [ @table_name = ] N'table_name' ]
[ , [ @table_schema = ] N'table_schema' ]
[ , [ @table_catalog = ] N'table_catalog' ]
[ , [ @index_name = ] N'index_name' ]
[ , [ @is_unique = ] is_unique ]
[ ; ]
参数
[ @table_server = ] N'table_server'
运行要为其请求表信息的 SQL Server 的链接服务器的名称。 @table_server为 sysname,没有默认值。
[ @table_name = ] N'table_name'
要为其提供索引信息的远程表的名称。 @table_name为 sysname,默认值为 NULL
. 如果 NULL
返回指定数据库中的所有表。
[ @table_schema = ] N'table_schema'
指定表架构。 @table_schema为 sysname,默认值为 NULL
. 在 SQL Server 环境中,此值对应于表所有者。
[ @table_catalog = ] N'table_catalog'
@table_name所在的数据库的名称。 @table_catalog为 sysname,默认值为 NULL
. 如果 NULL
, 则@table_catalog 默认为 master
。
[ @index_name = ] N'index_name'
要为其请求信息的索引的名称。 @index_name为 sysname,默认值为 NULL
.
[ @is_unique = ] is_unique
要为其返回信息的索引的类型。 @is_unique位,可以是以下值之一。
值 | 说明 |
---|---|
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 = Clustered2 = 哈希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
链接服务器上 AdventureWorks2022
数据库的 Seattle1
表的所有索引信息。
EXEC sp_indexes @table_server = 'Seattle1',
@table_name = 'Employee',
@table_schema = 'HumanResources',
@table_catalog = 'AdventureWorks2022';