Sdílet prostřednictvím


sys.index_columns (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPlatform Platform System (PDW)databáze SQL v Microsoft Fabric

Obsahuje jeden řádek na sloupec, který je součástí indexu nebo neseřazené tabulky (haldy).

Název sloupce Datový typ Popis
object_id int ID objektu, na který je index definován.
index_id int ID indexu, ve kterém je sloupec definován.
index_column_id int ID indexového sloupce. index_column_id je jedinečný pouze v rámci index_id.
column_id int ID sloupce v object_id.

0 = identifikátor řádku (RID) v neclusterovaného indexu.

column_id je jedinečný pouze v rámci object_id.
key_ordinal tinyint Řadové (1) v sadě sloupců s klíči

0 = Není klíčový sloupec nebo je index XML, index columnstore nebo prostorový index.

Poznámka: Kód XML nebo prostorový index nemůže být klíč, protože podkladové sloupce nejsou srovnatelné, což znamená, že jejich hodnoty nelze uspořádat.
partition_ordinal tinyint Řadové (1) v rámci sady sloupců dělení Clusterovaný index columnstore může mít maximálně jeden sloupec dělení.

0 = Není sloupec dělení.
is_descending_key bitová 1 = Sloupec klíče indexu má sestupný směr řazení.

0 = Sloupec klíče indexu má vzestupný směr řazení nebo je sloupec součástí indexu columnstore nebo hash.
is_included_column bitová 1 = Sloupec je neklíčový sloupec přidaný do indexu pomocí klauzule CREATE INDEX INCLUDE nebo je sloupec součástí indexu columnstore.

0 = Sloupec není zahrnutý sloupec.

Sloupce se implicitně přidávají, protože jsou součástí klíče clusteringu, nejsou uvedené v sys.index_columns.

Sloupce se implicitně přidávají, protože se jedná o sloupec dělení, který se vrací jako 0.
column_store_order_ordinal tinyint platí pro: Azure Synapse Analytics, SQL Server 2022 (16.x), Azure SQL Database a Azure SQL Managed Instance s Always-up-to-date update policy

Řadové (1) v sadě sloupců objednávek v uspořádané index columnstore. Další informace o seřazených indexech columnstore najdete v tématu Ladění výkonu s seřazenými indexy columnstore.

Dovolení

Viditelnost metadat v zobrazeních katalogu je omezená na zabezpečitelné, které uživatel vlastní nebo na kterých uživatel udělil určité oprávnění. Další informace naleznete v tématu konfigurace viditelnosti metadat.

Příklady

Následující příklad vrátí všechny indexy a indexové sloupce pro tabulku Production.BillOfMaterials.

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

Tady je sada výsledků.

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)

Další kroky