sys.index_columns (Transact-SQL)
Umfasst eine Zeile pro Spalte, die Teil eines Indexes vom Typ sys.indexes oder einer unsortierten Tabelle (Heap) ist.
Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version). |
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 der 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 ein räumlicher Index kann kein Schlüssel sein, da die zugrunde liegenden Spalten nicht vergleichbar sind, d. h., dass ihre Werte nicht sortiert 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 wurden, da sie Teil des Gruppierungsschlüssels sind, werden nicht in sys.index_columns aufgelistet. Spalten, die implizit hinzugefügt wurden, da sie eine Partitionierungsspalte sind, werden als 0 zurückgegeben. |
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 Konfigurieren der Sichtbarkeit von Metadaten.
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');
Dies 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)
Siehe auch
Verweis
Katalogsichten für Objekte (Transact-SQL)