sys.index_columns (Transact-SQL)

適用対象: SQL Server (サポートされているすべてのバージョン) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

インデックスまたは順序なしのテーブル (ヒープ) の一部である列ごとに 1 行が含まれます。

列名 データ型 説明
object_id int インデックスが定義されているオブジェクトの ID。
index_id int 列が定義されているインデックスの ID です。
index_column_id int インデックス列の ID。 index_column_id は 内 index_idでのみ一意です。
column_id int の列の object_idID。

0 = 非クラスター化インデックスの行識別子 (RID)。

column_id は 内 object_idでのみ一意です。
key_ordinal tinyint 一連のキー列内での 1 から始まる序数です。

0 = キー列ではないか、XML インデックス、列ストア インデックス、または空間インデックスです。

注: 基になる列は比較できないので、XML または空間インデックスをキーにすることはできません。つまり、値を並べ替えることはできません。
partition_ordinal tinyint パーティション分割列のセット内の序数 (1 から始まる)。 クラスター化列ストア インデックスには、最大で 1 つのパーティション分割列を含めることができます。

0 = パーティション分割列ではありません。
is_descending_key bit 1 = インデックス キー列には降順の並べ替え方向があります。

0 = インデックス キー列の並べ替え方向が昇順であるか、列が列ストアまたはハッシュ インデックスの一部です。
is_included_column bit 1 = Column は、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)

次のステップ