Condividi tramite


sys.index_columns (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL di Azure Synapse Analytics Platform System (PDW)in Microsoft Fabric

Contiene una riga per colonna che fa parte di un indice o di una tabella non ordinata (heap).

Nome colonna Tipo di dati Descrizione
object_id Int ID dell'oggetto su cui è definito l'indice.
index_id Int ID dell'indice nel quale è stata definita la colonna.
index_column_id Int ID della colonna dell'indice. index_column_id è univoco solo all'interno index_iddi .
column_id Int ID della colonna in object_id.

0 = Identificatore di riga (RID) in un indice non cluster.

column_id è univoco solo all'interno object_iddi .
key_ordinal tinyint Numero ordinale (in base 1) nel set di colonne chiave.

0 = Non una colonna chiave o è un indice XML, un indice columnstore, un indice spaziale o un indice JSON.

Nota: un indice XML o spaziale o JSON non può essere una chiave perché le colonne sottostanti non sono confrontabili, ovvero non è possibile ordinare i relativi valori.
partition_ordinal tinyint Numero ordinale (in base 1) nel set di colonne di partizionamento. Un indice columnstore cluster può avere al massimo una colonna di partizionamento.

0 = La colonna non è una colonna di partizionamento.
is_descending_key pezzo 1 = La colonna chiave di indice ha una direzione di ordinamento decrescente.

0 = La colonna chiave di indice ha una direzione di ordinamento crescente oppure la colonna fa parte di un indice columnstore o hash.
is_included_column pezzo 1 = Column è una colonna non chiave aggiunta all'indice tramite la clausola CREATE INDEX INCLUDE oppure la colonna fa parte di un indice columnstore.

0 = La colonna non è inclusa.

Le colonne aggiunte in modo implicito perché fanno parte della chiave di clustering non sono elencate in sys.index_columns.

Le colonne aggiunte in modo implicito perché sono una colonna di partizionamento vengono restituite come 0.
column_store_order_ordinal tinyint Si applica a: Azure Synapse Analytics, SQL Server 2022 (16.x), database SQL di Azure eAUTD di Istanza gestita di SQL di Azure

Ordinale (in base 1) all'interno di un set di colonne di ordine in un indice columnstore ordinato. Per altre informazioni sugli indici columnstore ordinati, vedere Ottimizzazione delle prestazioni con indici columnstore ordinati.
data_clustering_ordinal tinyint 0 = Non è applicabile un indice columnstore e un ordinale di clustering di dati
Si applica a: ANTEPRIMA di SQL Server 2025 (17.x)

Autorizzazioni

La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.

Esempi

Nell'esempio seguente vengono restituiti tutti gli indici e le colonne degli indici della tabella 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');

Il set di risultati è il seguente.

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)

Passaggi successivi