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

SE APLICA A: síSQL Server síAzure SQL Database síAzure Synapse Analytics (SQL DW) síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Contiene una fila por cada columna que forma parte de un sys.indexes índice o tabla no ordenada (montón).Contains one row per column that is part of a sys.indexes index or unordered table (heap).

Nombre de columnaColumn name Tipo de datosData type DescripciónDescription
object_idobject_id intint Id. del objeto en el que se define el índice.ID of the object the index is defined on.
index_idindex_id intint Id. del índice en el que se define la columna.ID of the index in which the column is defined.
index_column_idindex_column_id intint Id. de la columna de índice.ID of the index column. index_column_id es exclusivo solo dentro index_id.index_column_id is unique only within index_id.
column_idcolumn_id intint Identificador de la columna en object_id.ID of the column in object_id.

0 = Identificador de fila (RID) en un índice no clúster.0 = Row Identifier (RID) in a nonclustered index.

column_id es exclusivo solo dentro object_id.column_id is unique only within object_id.
key_ordinalkey_ordinal tinyinttinyint Ordinal (de base 1) en el conjunto de columnas de clave.Ordinal (1-based) within set of key-columns.

0 = No es una columna de clave; es un índice XML, un índice de almacén de columnas o un índice espacial.0 = Not a key column, or is an XML index, a columnstore index, or a spatial index.

Nota: Un índice XML o espacial no puede ser una clave ya que las columnas subyacentes no son comparables, lo que significa que no se puede ordenar sus valores.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 Ordinal (de base 1) en el conjunto de columnas de partición.Ordinal (1-based) within set of partitioning columns. Un índice de almacén de columnas en clúster puede tener como máximo 1 columna de particionamiento.A clustered columnstore index can have at most 1 partitioning column.

0 = No es una columna de partición.0 = Not a partitioning column.
is_descending_keyis_descending_key bitbit 1 = El orden de la columna de clave de índice es descendente.1 = Index key column has a descending sort direction.

0 = La columna de clave de índice tiene una dirección de orden ascendente, o bien la columna es parte de un índice de almacén de columnas o hash.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 = La columna es una columna sin clave que se agrega al índice utilizando la cláusula CREATE INDEX INCLUDE, o bien la columna forma parte de un índice de almacén de columnas.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 = La columna no es una columna incluida.0 = Column is not an included column.

No se muestran las columnas agregadas implícitamente porque forman parte de la clave de agrupación en clústeres en sys.index_columns.Columns implicitly added because they are part of the clustering key are not listed in sys.index_columns.

Las columnas agregadas implícitamente porque son una columna de partición se devuelven como 0.Columns implicitly added because they are a partitioning column are returned as 0.
column_store_order_ordinalcolumn_store_order_ordinal
Se aplica a: Azure SQL Data Warehouse (versión preliminar)Applies to: Azure SQL Data Warehouse (preview)
tinyinttinyint Ordinal (basado en 1) dentro de conjunto de columnas de orden de un índice agrupado ordenada.Ordinal (1-based) within set of order columns in an ordered clustered columnstore index.

PermisosPermissions

La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario tiene algún permiso.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. Para obtener más información, consulte Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

EjemplosExamples

En el ejemplo siguiente se devuelven todos los índices y columnas de índice para la tabla 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');  
  

El conjunto de resultados es el siguiente.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)  
  

Vea tambiénSee Also

Object Catalog Views (Transact-SQL) (Vistas de catálogo de objetos [Transact-SQL])Object Catalog Views (Transact-SQL)
Vistas de catálogo (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)
Preguntas frecuentes sobre consultas del catálogo de sistema de SQL ServerQuerying the SQL Server System Catalog FAQ