Dela via


sys.index_columns (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Innehåller en rad per kolumn som ingår i ett index eller en osorterad tabell (heap).

Kolumnnamn Datatyp Beskrivning
object_id int ID för objektet som indexet definieras på.
index_id int ID för indexet där kolumnen definieras.
index_column_id int ID för indexkolumnen. index_column_id är bara unikt inom index_id.
column_id int ID för kolumnen i object_id.

0 = Radidentifierare (RID) i ett icke-grupperat index.

column_id är bara unikt inom object_id.
key_ordinal pytteliten Ordningstal (1-baserad) inom uppsättning nyckelkolumner.

0 = Inte en nyckelkolumn, eller är ett XML-index, ett columnstore-index eller ett rumsligt index.

Obs! Ett XML- eller rumsligt index kan inte vara en nyckel eftersom de underliggande kolumnerna inte är jämförbara, vilket innebär att deras värden inte kan sorteras.
partition_ordinal pytteliten Ordningstal (1-baserad) inom uppsättningen partitioneringskolumner. Ett grupperat columnstore-index kan ha högst en partitioneringskolumn.

0 = Inte en partitioneringskolumn.
is_descending_key bit 1 = Indexnyckelkolumnen har en fallande sorteringsriktning.

0 = Indexnyckelkolumnen har en stigande sorteringsriktning, eller så är kolumnen en del av ett kolumnarkiv eller hash-index.
is_included_column bit 1 = Kolumn är en icke-nyckelkolumn som läggs till i indexet med hjälp av CREATE INDEX INCLUDE-satsen, eller så är kolumnen en del av ett kolumnlagringsindex.

0 = Kolumnen är inte en inkluderad kolumn.

Kolumner har lagts till implicit eftersom de ingår i klustringsnyckeln inte visas i sys.index_columns.

Kolumner har lagts till implicit eftersom de är en partitioneringskolumn som returneras som 0.
column_store_order_ordinal pytteliten gäller för: Azure Synapse Analytics, SQL Server 2022 (16.x), Azure SQL Database och Azure SQL Managed Instance med princip för uppdateringup-to-datum

Ordningstal (1-baserad) inom uppsättning ordningskolumner i ett ordnat kolumnlagringsindex. Mer information om ordnade columnstore-index finns i Prestandajustering med ordnade columnstore-index.

Behörigheter

Synligheten för metadata i katalogvyer är begränsad till skyddsbara objekt som en användare antingen äger eller som användaren har beviljats viss behörighet för. Mer information finns i konfiguration av metadatasynlighet.

Exempel

I följande exempel returneras alla index och indexkolumner för tabellen Production.BillOfMaterials.

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

Här är resultatuppsättningen.

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ästa steg