INDEXKEY_PROPERTY (Transact-SQL)

返回有关索引键的信息。对于 XML 索引,返回 NULL。

重要说明重要提示

后续版本的 Microsoft SQL Server 将删除该功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。可改用 sys.index_columns (Transact-SQL)

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

语法

INDEXKEY_PROPERTY ( object_ID ,index_ID ,key_ID ,property )

参数

  • object_ID
    表或索引视图的对象标识号。object_ID 的数据类型为 int

  • index_ID
    索引标识号。index_ID 的数据类型为 int

  • key_ID
    索引键列的位置。key_ID 的数据类型为 int

  • property
    要返回其信息的属性的名称。property 是字符串,可以是下列值之一:

    说明

    ColumnId

    索引的 key_ID 位置上的列 ID。

    IsDescending

    存储索引列的排序顺序。

    1 = 降序 0 = 升序

返回类型

int

异常

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

用户只能查看符合如下条件的安全对象的元数据:该安全对象为该用户所有,或已授予该用户对该安全对象的权限。也就是说,如果用户对该对象没有任何权限,则那些会生成元数据的内置函数(如 INDEXKEY_PROPERTY)可能返回 NULL。有关详细信息,请参阅元数据可见性配置元数据可见性故障排除

示例

在以下示例中,将返回 Production.Location 表中索引 ID 1 和键列 1 的两个属性。

USE AdventureWorks;
GO
SELECT 
    INDEXKEY_PROPERTY(OBJECT_ID('Production.Location', 'U'),
        1,1,'ColumnId') AS [Column ID],
    INDEXKEY_PROPERTY(OBJECT_ID('Production.Location', 'U'),
        1,1,'IsDescending') AS [Asc or Desc order];

下面是结果集:

Column ID   Asc or Desc order 
----------- ----------------- 
1           0

(1 row(s) affected)