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

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simAzure Synapse Analytics (SQL DW) simParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Contém uma linha por coluna que faz parte de um sys. Indexes índice ou tabela não ordenada (heap).Contains one row per column that is part of a sys.indexes index or unordered table (heap).

Nome da colunaColumn name Tipo de dadosData type DescriçãoDescription
object_idobject_id intint ID do objeto em que o índice está definido.ID of the object the index is defined on.
index_idindex_id intint ID do índice no qual a coluna está definida.ID of the index in which the column is defined.
index_column_idindex_column_id intint ID da coluna de índice.ID of the index column. index_column_id só é exclusivo dentro index_id.index_column_id is unique only within index_id.
column_idcolumn_id intint ID da coluna na object_id.ID of the column in object_id.

0 = RID (Identificador de linha) em um índice não clusterizado.0 = Row Identifier (RID) in a nonclustered index.

column_id só é exclusivo dentro object_id.column_id is unique only within object_id.
key_ordinalkey_ordinal tinyinttinyint Ordinal (com base em 1) dentro do conjunto de colunas chave.Ordinal (1-based) within set of key-columns.

0 = Não é uma coluna de chave ou é um índice XML, índice columnstore ou índice espacial.0 = Not a key column, or is an XML index, a columnstore index, or a spatial index.

Observação: Um índice XML ou espacial não pode ser uma chave porque as colunas subjacentes não são comparáveis, que significa que seus valores não podem ser ordenados.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 (com base em 1) dentro do conjunto de colunas de particionamento.Ordinal (1-based) within set of partitioning columns. Um índice columnstore clusterizado pode ter, no máximo, uma coluna de particionamento.A clustered columnstore index can have at most 1 partitioning column.

0 = Não é uma coluna de particionamento.0 = Not a partitioning column.
is_descending_keyis_descending_key bitbit 1 = A coluna de chave do índice tem uma classificação decrescente.1 = Index key column has a descending sort direction.

0 = A coluna de chave do índice tem uma classificação crescente, ou a coluna faz parte de um índice de 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 = A coluna é uma coluna não chave adicionada ao índice através da cláusula CREATE INDEX INCLUDE, ou a coluna faz parte de um índice 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 = A coluna não é uma coluna incluída.0 = Column is not an included column.

Colunas adicionadas implicitamente porque fazem parte da chave de clustering não estão listadas na index_columns.Columns implicitly added because they are part of the clustering key are not listed in sys.index_columns.

Colunas adicionadas implicitamente porque são uma coluna de particionamento são retornadas como 0.Columns implicitly added because they are a partitioning column are returned as 0.
column_store_order_ordinalcolumn_store_order_ordinal
Aplica-se a: SQL Data Warehouse do Azure (visualização)Applies to: Azure SQL Data Warehouse (preview)
tinyinttinyint Ordinal (base 1) dentro do conjunto de ordem de colunas em um índice columnstore clusterizado ordenada.Ordinal (1-based) within set of order columns in an ordered clustered columnstore index.

PermissõesPermissions

A visibilidade dos metadados em exibições do catálogo está limitada aos protegíveis que pertencem a um usuário ou para os quais o usuário recebeu permissão.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 obter mais informações, consulte Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

ExemplosExamples

O exemplo a seguir retorna todos os índices e colunas de índice para a tabela 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');  
  

Aqui está o conjunto de resultados.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)  
  

Consulte tambémSee Also

Exibições de catálogo de objeto(Transact-SQL) Object Catalog Views (Transact-SQL)
Exibições 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)
Consultando as perguntas frequentes do catálogo do sistema do SQL ServerQuerying the SQL Server System Catalog FAQ