Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

sys.index_columns (Transact-SQL)

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

S'applique à : SQL Server (SQL Server 2008 jusqu'à la version actuelle, Base de données SQL Windows Azure (version initiale jusqu'à la version actuelle).

Nom de la colonne

Type de données

Description

object_id

int

ID de l'objet pour lequel l'index est défini.

index_id

int

Identificateur de l'index où la colonne est définie.

index_column_id

int

Identificateur de l'index de colonne. index_column_id n'est unique que dans index_id.

column_id

int

Identificateur de la colonne dans object_id.

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

column_id n'est unique que dans object_id.

key_ordinal

tinyint

Valeur 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 Remarque

Un index XML ou spatial ne peut pas être une clé, car les colonnes sous-jacentes ne sont pas comparables, autrement dit leurs valeurs ne peuvent pas être ordonnées.

partition_ordinal

tinyint

Valeur 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_key

bit

1 = 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_column

bit

1 = La colonne est une colonne non clé ajoutée à l'index en utilisant la clause CREATE INDEX INCLUDE ou il s'agit d'une colonne qui fait partie d'un index columnstore.

0 = Colonne non incluse.

Les colonnes ajoutées implicitement du fait qu'elles font partie de la clé de cluster ne sont pas répertoriées 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 la 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)

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft