sys.index_columns (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Enthält eine Zeile pro Spalte, die Teil einer Index- oder ungeordneten Tabelle (Heap) ist.

Spaltenname Datentyp BESCHREIBUNG
object_id int ID des Objekts, für das der Index definiert wird
index_id int ID des Indexes, in dem die Spalte definiert wird
index_column_id int Die ID der Indexspalte. index_column_id ist nur innerhalb index_idvon .
column_id int ID der Spalte in object_id.

0 = Zeilenbezeichner (RID) in einem nicht gruppierten Index.

column_id ist nur innerhalb object_idvon .
key_ordinal tinyint Ordinalzahl (auf 1 basierend) innerhalb einer Gruppe von Schlüsselspalten.

0 = Keine Schlüsselspalte oder ein XML-Index, columnstore-Index oder räumlicher Index.

Hinweis: Ein XML- oder räumlicher Index kann kein Schlüssel sein, da die zugrunde liegenden Spalten nicht vergleichbar sind, was bedeutet, dass ihre Werte nicht sortiert werden können.
partition_ordinal tinyint Ordinalzahl (1-basiert) innerhalb einer Gruppe von Partitionierungsspalten. Ein gruppierter Columnstore-Index kann höchstens eine Partitionierungsspalte aufweisen.

0 = Keine Partitionierungsspalte.
is_descending_key bit 1 = Indexschlüsselspalte weist eine absteigende Sortierrichtung auf.

0 = Indexschlüsselspalte hat eine aufsteigende Sortierrichtung, oder die Spalte ist Teil eines Spaltenspeichers oder Hashindex.
is_included_column bit 1 = Spalte ist eine Nichtschlüsselspalte, die dem Index mithilfe der CREATE INDEX INCLUDE-Klausel hinzugefügt wird, oder die Spalte ist Teil eines Columnstore-Indexes.

0 = Spalte ist keine enthaltene Spalte.

Implizit hinzugefügte Spalten, da sie Teil des Clusteringschlüssels sind, werden nicht in sys.index_columnsaufgeführt.

Implizit hinzugefügte Spalten, da sie eine Partitionierungsspalte sind, werden als 0.
column_store_order_ordinal tinyint Gilt für: Azure Synapse Analytics und SQL Server 2022 (16.x)
Ordinal (1-basiert) innerhalb einer Reihe von Reihenfolgespalten in einem gruppierten Spaltenspeicherindex. Weitere Informationen zu sortierten gruppierten Columnstore-Indizes finden Sie in den Entwurfsanleitungen für den Columnstore-Index.

Berechtigungen

Die Sichtbarkeit der Metadaten in Katalogansichten ist auf sicherungsfähige Elemente beschränkt, die ein Benutzer besitzt oder für die der Benutzer eine Berechtigung erteilt hat. Weitere Informationen finden Sie unter Metadata Visibility Configuration.

Beispiele

Im folgenden Beispiel werden alle Indizes und Indexspalten für die Tabelle Production.BillOfMaterials zurückgegeben.

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');

Hier ist das Resultset.

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)

Nächste Schritte