sys.index_columns (Transact-SQL)
适用于: SQL Server Azure SQL Database
Azure SQL 托管实例
Azure Synapse Analytics
Analytics 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)