返回指定的表或索引视图上的所有索引以及统计的列表。
sp_statistics [@table_name =] 'table_name'
[,[@table_owner =] 'owner']
[,[@table_qualifier =] 'qualifier']
[,[@index_name =] 'index_name']
[,[@is_unique =] 'is_unique']
[,[@accuracy =] 'accuracy']
[@table_name =] 'name'
指定用于返回目录信息的表。table_name 的数据类型是 sysname,没有默认设置。不支持通配符模式匹配。
[@table_owner =] 'owner'
是用于返回目录信息的表所有者名称。table_owner 的数据类型是 sysname,默认设置为 NULL。不支持通配符模式匹配。如果未指定 owner,则应用基础 DBMS 的默认表可视性规则。
在 Microsoft® SQL Server™ 中,如果当前用户拥有带指定名称的表,则返回该表的索引。如果未指定 owner 且当前用户不拥有带指定 name 的表,则该过程查找由数据库所有者拥有的带指定 name 的表。如果存在这样的表,则返回该表的索引。
[@table_qualifier =] 'qualifier'
是表限定符的名称。qualifier 的数据类型为 sysname,默认设置为 NULL。多种 DBMS 产品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,该参数表示数据库名。在某些产品中,该列表示表所在数据库环境的服务器名。
[@index_name =] 'index_name'
是索引名。index_name 的数据类型是 sysname,默认设置为 %。
[@is_unique =] 'is_unique'
表示是否只返回唯一索引(如果是 Y)。is_unique 的数据类型是 char(1),默认设置为 N。
[@accuracy =] 'accuracy'
是统计的基数和页准确度级别。accuracy 的数据类型为 char(1),默认设置为 Q。指定 E 可确保更新统计以使基数和页都是准确的。
列名 | 数据类型 | 描述 |
---|---|---|
TABLE_QUALIFIER | sysname | 表限定符名称。该字段可以为 NULL。 |
TABLE_OWNER | sysname | 表所有者名称。该字段始终返回值。 |
TABLE_NAME | sysname | 表名。该字段始终返回值。 |
NON_UNIQUE | smallint | NOT NULL。 0 = 唯一 1 = 不唯一 |
INDEX_QUALIFIER | sysname | 索引所有者名称。某些 DBMS 产品允许表所有者以外的用户创建索引。在 SQL Server 中,该列始终和 TABLE_NAME 相同。 |
INDEX_NAME | sysname | 是索引名。该字段始终返回值。 |
TYPE | smallint | 该字段始终返回值。SQL Server 返回 0、1、2 或 3: 0 = 表的统计 1 = 聚集 2 = 哈希 3 = 其它 |
SEQ_IN_INDEX | smallint | 列在索引内的位置。 |
COLUMN_NAME | sysname | 返回的 TABLE_NAME 中每列的列名。该字段始终返回值。 |
COLLATION | char(1) | 用于排序规则的次序。SQL Server 始终返回 A。可以是: A = 升序 D = 降序 NULL = 不适用 |
CARDINALITY | int | 表内的行数或索引内的唯一值个数。 |
PAGES | int | 存储索引或表的页数。 |
FILTER_CONDITION | varchar(128) | SQL Server 不返回值。 |
无
结果集内的索引按 NON_UNIQUE、TYPE、INDEX_NAME 和 SEQ_IN_INDEX 列排序的升序出现。
聚集索引类型引用按该索引的次序存储表数据的索引。这相当于 SQL Server 聚集索引。
哈希索引类型接受完全匹配或范围搜索,但模式匹配搜索不使用索引。
在 ODBC 中,sp_statistics 与 SQLStatistics 等效。返回的结果按 NON_UNIQUE、TYPE、INDEX_QUALIFIER、INDEX_NAME 和 SEQ_IN_INDEX 排序。
执行权限默认授予 public 角色。