INDEXPROPERTY (Transact-SQL)

更新日期: 2006 年 7 月 17 日

根据指定的表标识号、索引或统计信息名称以及属性名称,返回已命名的索引或统计信息属性值。对于 XML 索引,返回 NULL。

主题链接图标Transact-SQL 语法约定

语法

INDEXPROPERTY ( object_ID , index_or_statistics_name , property ) 

参数

  • object_ID
    一个表达式,包含要为其提供索引属性信息的表或索引视图的对象标识号。object_ID 的数据类型为 int
  • index_or_statistics_name
    一个表达式,包含要为其返回属性信息的索引或统计信息的名称。index_or_statistics_name 的数据类型为 nvarchar(128)
  • property
    一个表达式,包含要返回的数据库属性的名称。property 的数据类型为 varchar(128),可以是下列值之一:

    ms187729.note(zh-cn,SQL.90).gif注意:
    除非另外注明,否则出现以下情况时将返回 NULL:property 不是有效的属性名称;object_ID 不是有效的对象 ID;object_ID 不是指定属性支持的对象类型;调用方无权查看对象的元数据。
    属性 说明

    IndexDepth

    索引的深度。

    索引级别数。

    NULL = XML 索引或输入无效。

    IndexFillFactor

    创建索引或最后重新生成索引时使用的填充因子值。

    填充因子

    IndexID

    指定表或索引视图上索引的索引 ID。

    索引 ID

    IsAutoStatistics

    统计信息是由 ALTER DATABASE 的 AUTO_CREATE_STATISTICS 选项生成的。

    1 = True

    0 = False 或 XML 索引。

    IsClustered

    索引是聚集的。

    1 = True

    0 = False 或 XML 索引。

    IsDisabled

    索引被禁用。

    1 = True

    0 = False

    NULL = 输入无效。

    IsFulltextKey

    索引是表的全文键。

    1 = True

    0 = False 或 XML 索引。

    NULL = 输入无效。

    IsHypothetical

    索引是假设的,不能直接用作数据访问路径。假设索引包含列级统计信息,由数据库引擎优化顾问维护和使用。

    1 = True

    0 = False 或 XML 索引

    NULL = 输入无效。

    IsPadIndex

    索引指定每个内部节点上将要保持空闲的空间。

    1 = True

    0 = False 或 XML 索引。

    IsPageLockDisallowed

    通过 ALTER INDEX 的 ALLOW_PAGE_LOCKS 选项设置的页锁定值。

    1 = 不允许页锁定。

    0 = 允许页锁定。

    NULL = 输入无效。

    IsRowLockDisallowed

    通过 ALTER INDEX 的 ALLOW_ROW_LOCKS 选项设置的行锁定值。

    1 = 不允许行锁定。

    0 = 允许行锁定。

    NULL = 输入无效。

    IsStatistics

    index_or_statistics_name 是通过 CREATE STATISTICS 语句或 ALTER DATABASE 的 AUTO_CREATE_STATISTICS 选项创建的统计信息。

    1 = True

    0 = False 或 XML 索引。

    IsUnique

    索引是唯一的。

    1 = True

    0 = False 或 XML 索引。

返回类型

int

异常

出现错误时或调用方没有查看对象的权限时,将返回 NULL。

在 SQL Server 2005 中,用户只能查看用户拥有的安全对象的元数据,或者用户被授予其权限的安全对象的元数据。也就是说,如果用户对该对象没有任何权限,则那些会生成元数据的内置函数(如 NDEXPROPERTY)可能返回 NULL。有关详细信息,请参阅元数据可见性配置元数据可见性故障排除

示例

以下示例针对 Employee 表的 PK_Employee_EmployeeID 索引返回 IsClusteredIndexDepthIndexFillFactor 属性的值。

USE AdventureWorks;
GO
SELECT 
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_EmployeeID','IsClustered')AS [Is Clustered],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_EmployeeID','IndexDepth') AS [Index Depth],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_EmployeeID','IndexFillFactor') AS [Fill Factor];
GO

下面是结果集:

Is Clustered Index Depth Fill Factor 
------------ ----------- ----------- 
1            2           0

(1 row(s) affected)

请参阅

参考

CREATE INDEX (Transact-SQL)
sys.indexes (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.stats (Transact-SQL)
sys.stats_columns (Transact-SQL)

其他资源

索引统计信息
元数据可见性故障排除

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 7 月 17 日

新增内容:
  • 添加了“例外情况”部分。