INDEXKEY_PROPERTY (Transact-SQL)
适用于: SQL Server Azure SQL 托管实例
返回有关索引键的信息。 对于 XML 索引,返回 NULL。
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 而是使用 sys.index_columns (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。 有关详细信息,请参阅 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)