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)