Delen via


sys.index_columns (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-database in Microsoft Fabric Preview

Bevat één rij per kolom die deel uitmaakt van een index of een niet-geordende tabel (heap).

Column name Data type Description
object_id int Id van het object waarop de index is gedefinieerd.
index_id int Id van de index waarin de kolom is gedefinieerd.
index_column_id int Id van de indexkolom. index_column_id is alleen uniek binnen index_id.
column_id int Id van de kolom in object_id.

0 = Rij-id (RID) in een niet-geclusterde index.

column_id is alleen uniek binnen object_id.
key_ordinal tinyint Rangtelwoord (op basis van 1) binnen een set sleutelkolommen.

0 = Geen sleutelkolom of is een XML-index, columnstore-index, ruimtelijke index of JSON-index.

Opmerking: een XML- of ruimtelijke of JSON-index kan geen sleutel zijn omdat de onderliggende kolommen niet vergelijkbaar zijn, wat betekent dat de waarden niet kunnen worden gerangschikt.
partition_ordinal tinyint Rangschikking (op basis van 1) binnen een set partitioneringskolommen. Een geclusterde columnstore-index kan maximaal één partitioneringskolom hebben.

0 = Geen partitioneringskolom.
is_descending_key bit 1 = Indexsleutelkolom heeft een aflopende sorteerrichting.

0 = Indexsleutelkolom heeft een oplopende sorteerrichting of de kolom maakt deel uit van een columnstore of hash-index.
is_included_column bit 1 = Kolom is een niet-sleutelkolom die aan de index wordt toegevoegd met behulp van de COMPONENT CREATE INDEX INCLUDE of de kolom maakt deel uit van een columnstore-index.

0 = Kolom is geen opgenomen kolom.

Kolommen die impliciet zijn toegevoegd omdat ze deel uitmaken van de clustersleutel, worden niet vermeld in sys.index_columns.

Kolommen die impliciet worden toegevoegd omdat ze een partitioneringskolom zijn, worden geretourneerd als 0.
column_store_order_ordinal tinyint Van toepassing op: Azure Synapse Analytics, SQL Server 2022 (16.x), Azure SQL Database en Azure SQL Managed InstanceAUTD

Rangnummer (op basis van 1) binnen een set orderkolommen in een geordende columnstore-index. Zie Prestaties afstemmen met geordende columnstore-indexenvoor meer informatie over geordende columnstore-indexen.
data_clustering_ordinal tinyint 0 = Geen columnstore-index & gegevensclustering ordinaal is niet van toepassing
Van toepassing op: SQL Server 2025 (17.x) Preview

Permissions

De zichtbaarheid van de metagegevens in catalogusweergaven is beperkt tot beveiligbare items waarvan een gebruiker eigenaar is of waarvoor de gebruiker een bepaalde machtiging heeft gekregen. Zie Zichtbaarheidsconfiguratie voor metagegevensvoor meer informatie.

Examples

In het volgende voorbeeld worden alle indexen en indexkolommen voor de tabel geretourneerd 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');

Dit is de resultatenset.

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)

Next steps