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)