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


sys.index_columns (Transact-SQL)

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

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

Имя столбца Тип данных 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)

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