sys.index_columns (Transact-SQL)
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
每個數據行包含一個數據列,該數據行屬於索引或未排序數據表(堆積)。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
object_id | int | 索引所定義之對象的識別碼。 |
index_id | int | 定義數據行之索引的識別碼。 |
index_column_id | int | 索引數據行的識別碼。 index_column_id 只有在 內 index_id 才是唯一的。 |
column_id | int | 中數據行的 object_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 = Column 是使用 CREATE INDEX INCLUDE 子句新增至索引的非索引鍵數據行,或數據行是數據行存放區索引的一部分。0 = Column 不是包含的數據行。因為數據行是叢集索引鍵的一部分,所以不會列在 中 sys.index_columns 。因為數據行是分割數據行,所以 0 會以 隱含方式新增。 |
column_store_order_ordinal | tinyint | 適用於:Azure Synapse Analytics 和 SQL Server 2022 (16.x) 已排序叢集數據行存放區索引中順序數據行集合內的序數 (以 1 為基底)。 如需已排序叢集數據行存放區索引的詳細資訊,請參閱 數據行存放區索引設計指引。 |
權限
目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。 如需相關資訊,請參閱 Metadata Visibility Configuration。
範例
下列範例會傳回數據表 Production.BillOfMaterials
的所有索引和索引數據行。
USE AdventureWorks2022;
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)