Поделиться через


sys.index_columns (Transact-SQL)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure базе данных SQL Azure Synapse Analytics Analytics Platform System (PDW) в Microsoft Fabric

Содержит одну строку на столбец, который является частью индекса или неупорядоченной таблицы (кучи).

Имя столбца Тип данных Description
object_id int Идентификатор объекта, с которым ассоциирован индекс.
index_id int Идентификатор индекса, в котором определен столбец.
index_column_id int Идентификатор столбца индекса. index_column_id является уникальным только внутри index_id.
column_id int Идентификатор столбца в object_id.

0 = идентификатор строки (RID) в некластеризованном индексе.

column_id является уникальным только внутри object_id.
key_ordinal tinyint Порядковый номер (нумерация начинается с 1) внутри набора ключевых столбцов.

0 = неключевой столбец или XML-индекс, индекс columnstore или пространственный индекс.

Примечание. Xml или пространственный индекс не может быть ключом, так как базовые столбцы не сопоставимы, то есть их значения не могут быть упорядочены.
partition_ordinal tinyint Порядковый номер (нумерация начинается с 1) внутри набора столбцов секционирования. Кластеризованный индекс columnstore может иметь не более одного столбца секционирования.

0 = Объект не является столбцом секционирования.
is_descending_key bit 1 = ключевой столбец индекса имеет направление сортировки по убыванию.

0 = ключевой столбец индекса имеет направление сортировки по возрастанию, или столбец является частью столбца columnstore или хэш-индекса.
is_included_column bit 1 = Столбец является неключимым столбцом, добавленным в индекс с помощью предложения CREATE INDEX INCLUDE, или столбец является частью индекса columnstore.

0 = столбец не является включенным столбцом.

Столбцы неявно добавлены, так как они являются частью ключа кластеризации, не перечислены в sys.index_columns.

Столбцы неявно добавлены, так как они являются столбцом секционирования, возвращаются как 0.
column_store_order_ordinal tinyint Область применения: Azure Synapse Analytics и SQL Server 2022 (16.x)
Порядковый номер (1 на основе) в наборе столбцов порядка в упорядоченном кластеризованном индексе columnstore. Дополнительные сведения о упорядоченных кластеризованных индексах columnstore см . в руководстве по проектированию индекса Columnstore.

Разрешения

Видимость метаданных в представлениях каталога ограничена защищаемыми объектами, которыми владеет пользователь или которым пользователь получил некоторое разрешение. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Примеры

В следующем примере возвращаются все индексы и индексированные столбцы для таблицы 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');

Вот результирующий набор.

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)

Следующие шаги