sys.index_columns (Transact-SQL)sys.index_columns (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database ouiAzure Synapse Analytics (SQL DW) ouiParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Contient une ligne par colonne qui fait partie d’un sys.indexes index ou table non ordonnée (segment).Contains one row per column that is part of a sys.indexes index or unordered table (heap).

Nom de la colonneColumn name Type de donnéesData type DescriptionDescription
object_idobject_id intint ID de l'objet pour lequel l'index est défini.ID of the object the index is defined on.
index_idindex_id intint Identificateur de l'index où la colonne est définie.ID of the index in which the column is defined.
index_column_idindex_column_id Intint Identificateur de l'index de colonne.ID of the index column. index_column_id est unique seulement dans index_id.index_column_id is unique only within index_id.
column_idcolumn_id intint ID de la colonne dans object_id.ID of the column in object_id.

0 = Identificateur de ligne (RID) dans un index non-cluster.0 = Row Identifier (RID) in a nonclustered index.

column_id est unique seulement dans object_id.column_id is unique only within object_id.
key_ordinalkey_ordinal tinyinttinyint Valeur ordinale (basée sur la valeur 1) dans l'ensemble de colonnes clés.Ordinal (1-based) within set of key-columns.

0 = N'est pas une colonne clé, ou est un index XML, un index columnstore ou un index spatial.0 = Not a key column, or is an XML index, a columnstore index, or a spatial index.

Remarque : Un index XML ou spatial ne peut pas être une clé, car les colonnes sous-jacentes ne sont pas comparables, ce qui signifie que leurs valeurs ne peuvent pas être triées.Note: An XML or spatial index cannot be a key because the underlying columns are not comparable, meaning that their values cannot be ordered.
partition_ordinalpartition_ordinal tinyinttinyint Valeur ordinale (basée sur la valeur 1) dans l'ensemble de colonnes de partitionnement.Ordinal (1-based) within set of partitioning columns. Un index cluster columnstore peut avoir au plus une colonne de partitionnement.A clustered columnstore index can have at most 1 partitioning column.

0 = N'est pas une colonne de partitionnement.0 = Not a partitioning column.
is_descending_keyis_descending_key bitbit 1 = Colonne clé d'index avec un ordre de tri descendant.1 = Index key column has a descending sort direction.

0 = Colonne clé d'index avec un ordre de tri croissant, ou il s'agit d'une colonne qui fait partie d'un index de hachage.0 = Index key column has an ascending sort direction, or the column is part of a columnstore or hash index.
is_included_columnis_included_column bitbit 1 = colonne est une colonne non clée ajoutée à l’index à l’aide de la clause CREATE INDEX INCLUDE ou de la colonne fait partie d’un index columnstore.1 = Column is a nonkey column added to the index by using the CREATE INDEX INCLUDE clause, or the column is part of a columnstore index.

0 = Colonne non incluse.0 = Column is not an included column.

Les colonnes ajoutées implicitement car ils font partie de la clé de clustering ne figurent pas dans sys.index_columns.Columns implicitly added because they are part of the clustering key are not listed in sys.index_columns.

Les colonnes ajoutées implicitement car il s'agit de colonnes de partitionnement sont retournées avec la valeur 0.Columns implicitly added because they are a partitioning column are returned as 0.
column_store_order_ordinalcolumn_store_order_ordinal
S'applique à : Azure SQL Data Warehouse (version préliminaire)Applies to: Azure SQL Data Warehouse (preview)
tinyinttinyint Ordinal (de base 1) au sein d’ensemble d’ordre des colonnes dans un index columnstore cluster ordonnée.Ordinal (1-based) within set of order columns in an ordered clustered columnstore index.

AutorisationsPermissions

La visibilité des métadonnées dans les affichages catalogue est limitée aux éléments sécurisables qu'un utilisateur détient ou pour lesquels des autorisations lui ont été accordées.The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. Pour plus d'informations, consultez Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

ExemplesExamples

L'exemple suivant retourne tous les index et les colonnes d'index de la table Production.BillOfMaterials.The following example returns all indexes and index columns for the table Production.BillOfMaterials.

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

Voici le jeu de résultats obtenu.Here is the result set.

  
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)  
  

Voir aussiSee Also

Vues de catalogue d’objets (Transact-SQL) Object Catalog Views (Transact-SQL)
Affichages catalogue (Transact-SQL) Catalog Views (Transact-SQL)
sys.indexes (Transact-SQL) sys.indexes (Transact-SQL)
sys.objects (Transact-SQL) sys.objects (Transact-SQL)
CREATE INDEX (Transact-SQL) CREATE INDEX (Transact-SQL)
sys.columns (Transact-SQL) sys.columns (Transact-SQL)
Questions fréquentes (FAQ) sur l’interrogation des catalogues système SQL ServerQuerying the SQL Server System Catalog FAQ