sys.index_columns (Transact-SQL)

适用于: SQL Server Azure SQL DatabaseAzure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

每列包含一行,该行属于索引表或无序表 (堆) 。

列名称 数据类型 说明
object_id int 定义索引的对象 ID。
index_id int 定义了列的索引的 ID。
index_column_id int 索引列的 ID。 index_column_id 仅在 中 index_id是唯一的。
column_id int object_id列的 ID。

0 = 非聚集索引 (RID) 的行标识符。

column_id 仅在 中 object_id是唯一的。
key_ordinal tinyint 键列集内的序数(从 1 开始)。

0 = 不是键列,或者是 XML 索引、列存储索引或空间索引。

注意:XML 或空间索引不能是键,因为基础列不可比较,这意味着其值不能排序。
partition_ordinal tinyint 分区列集内的序数(从 1 开始)。 聚集列存储索引最多可以有一个分区列。

0 = 非分区列。
is_descending_key bit 1 = 索引键列具有降序排序方向。

0 = 索引键列具有升序排序方向,或者列是列存储或哈希索引的一部分。
is_included_column bit 1 = 列是使用 CREATE INDEX INCLUDE 子句添加到索引中的非键列,或者列是列存储索引的一部分。

0 = 列不是包含的列。

隐式添加的列,因为它们是聚类分析键的一部分,未在 中 sys.index_columns列出。

隐式添加的列(因为它们是分区列)将 0作为 返回。
column_store_order_ordinal tinyint 适用于:Azure Synapse Analytics 和 SQL Server 2022 (16.x)
有序聚集列存储索引中顺序列集内的序号 (从 1 开始的) 。 有关有序聚集列存储索引的详细信息,请参阅 列存储索引设计指南

权限

目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。 有关详细信息,请参阅 Metadata Visibility Configuration

示例

下例返回表 Production.BillOfMaterials 的所有索引和索引列。

USE AdventureWorks2012;
GO
SELECT i.name AS index_name
    ,COL_NAME(ic.object_id,ic.column_id) AS column_name
    ,ic.index_column_id
    ,ic.key_ordinal
,ic.is_included_column
FROM sys.indexes AS i
INNER JOIN sys.index_columns AS ic
    ON i.object_id = ic.object_id AND i.index_id = ic.index_id
WHERE i.object_id = OBJECT_ID('Production.BillOfMaterials');

下面是结果集。

index_name                                                 column_name        index_column_id key_ordinal is_included_column
---------------------------------------------------------- -----------------  --------------- ----------- -------------
AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate ProductAssemblyID  1               1           0
AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate ComponentID        2               2           0
AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate StartDate          3               3           0
PK_BillOfMaterials_BillOfMaterialsID                       BillOfMaterialsID  1               1           0
IX_BillOfMaterials_UnitMeasureCode                         UnitMeasureCode    1               1           0
  
(5 row(s) affected)

后续步骤