sys.index_columns (Transact-SQL)

 

CETTE RUBRIQUE S’APPLIQUE À : ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabaseouiAzure SQL Data WarehouseouiParallel Data Warehouse

Contient une ligne par colonne qui fait partie d’un sys.indexes index ou table non ordonnée (segment).

Nom de colonneType de donnéesDescription
object_idintID de l'objet pour lequel l'index est défini.
index_idintIdentificateur de l'index où la colonne est définie.
index_column_idintIdentificateur de l'index de colonne. index_column_id est unique seulement dans index_id.
column_idintID de la colonne dans object_id.

0 = Identificateur de ligne (RID) dans un index non-cluster.

 column_id est unique seulement dans object_id.
key_ordinaltinyintValeur ordinale (basée sur la valeur&1;) dans l'ensemble de colonnes clés.

0 = N'est pas une colonne clé, ou est un index XML, un index columnstore ou un index spatial.

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.
partition_ordinaltinyintValeur ordinale (basée sur la valeur&1;) dans l'ensemble de colonnes de partitionnement. Un index cluster columnstore peut avoir au plus une colonne de partitionnement.

0 = N'est pas une colonne de partitionnement.
is_descending_keybits1 = Colonne clé d'index avec un ordre de tri descendant.

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.
is_included_columnbits1 = est une colonne non clée ajoutée à l’index à l’aide de la clause CREATE INDEX INCLUDE ou la colonne fait partie d’un index columnstore.

0 = Colonne non incluse.

Les colonnes ajoutées implicitement car ils font partie de la clé de cluster ne sont pas répertoriés dans sys.index_columns.

Les colonnes ajoutées implicitement car il s'agit de colonnes de partitionnement sont retournées avec la valeur 0.

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.Pour plus d’informations, consultez Configuration de visibilité des métadonnées.

L'exemple suivant retourne tous les index et les colonnes d'index de la 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 l'ensemble des résultats.

  
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)  
  

Affichages catalogue d’objets (Transact-SQL)
Affichages catalogue (Transact-SQL)
Sys.Indexes (Transact-SQL)
Sys.Objects (Transact-SQL)
Création d’INDEX (Transact-SQL)
Sys.Columns (Transact-SQL)
Interrogation des catalogues système SQL Server FAQ

Ajouts de la communauté

AJOUTER
Afficher: