INDEXKEY_PROPERTY (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例

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

重要

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

Transact-SQL 语法约定

语法

INDEXKEY_PROPERTY ( object_ID ,index_ID ,key_ID ,property )  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

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。 有关详细信息,请参阅 Metadata Visibility Configuration

示例

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

USE AdventureWorks2022;  
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)  

另请参阅

INDEX_COL (Transact-SQL)
INDEXPROPERTY (Transact-SQL)
sys.objects (Transact-SQL)
sys.indexes (Transact-SQL)
sys.index_columns (Transact-SQL)