sys.index_columns (Transact-SQL)

Anwendungsbereich: JaSQL Server (alle unterstützten Versionen) JaAzure SQL-Datenbank JaVerwaltete Azure SQL-Instanz JaAzure Synapse Analytics JaParallel Data Warehouse

Enthält eine Zeile pro Spalte, die Teil eines sys. Indexes -Indexes oder einer 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 eindeutig.
column_id int ID der Spalte in object_id.

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

column_id ist nur innerhalb von object_id eindeutig.
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-Index oder räumlicher Index kann kein Schlüssel sein, da die zugrunde liegenden Spalten nicht vergleichbar sind. Dies bedeutet, dass ihre Werte nicht geordnet werden können.
partition_ordinal tinyint Ordinalzahl (1-basiert) innerhalb einer Gruppe von Partitionierungsspalten. Ein gruppierter columnstore-Index kann maximal 1 Partitionierungsspalte aufweisen.

0 = Keine Partitionierungsspalte.
is_descending_key bit 1 = Indexschlüsselspalte hat eine absteigende Sortierreihenfolge.

0 = Indexschlüsselspalte hat eine aufsteigende Sortierreihenfolge, oder die Spalte ist Teil eines columnstore-Indexes oder Hashindexes.
is_included_column bit 1 = Spalte ist eine Nichtschlüsselspalte, die dem Index mit der CREATE INDEX INCLUDE-Klausel hinzugefügt wurde, oder die Spalte ist Teil eines columnstore-Indexes.

0 = Spalte ist keine eingeschlossene Spalte.

Spalten, die implizit hinzugefügt werden, da Sie Teil des Clustering-Schlüssels sind, sind nicht in sys.index_columns aufgeführt.

Spalten, die implizit hinzugefügt wurden, da sie eine Partitionierungsspalte sind, werden als 0 zurückgegeben.
column_store_order_ordinal
Gilt für: Azure Synapse Analytics (Vorschau)
tinyint Ordinalzahl (1-basiert) innerhalb des Satzes von Order-Spalten in einem geordneten gruppierten 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 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');  
  

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)  
  

Weitere Informationen

Katalogsichten für Objekte (Transact-SQL)
Katalogsichten (Transact-SQL)
sys.indexes (Transact-SQL)
sys.objects (Transact-SQL)
CREATE INDEX (Transact-SQL)
sys.columns (Transact-SQL)
FAQ: Abfragen des SQL Server-Systemkatalogs