sys.index_columns (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics 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_id von . |
column_id | int | ID der Spalte in object_id .0 = Zeilenbezeichner (RID) in einem nicht gruppierten Index.column_id ist nur innerhalb object_id von . |
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_columns aufgefü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 Katalogsichten ist auf sicherungsfähige Elemente eingeschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. 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 sehen Sie das Ergebnis.
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)