sys.index_columns (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Имя столбца

Тип данных

Описание

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 может иметь самое большее 1 столбец секционирования.

0 = Объект не является столбцом секционирования.

is_descending_key

bit

1 = Направление сортировки ключевого столбца индексов по убыванию.

0 = ключевой столбец индекса имеет направление сортировки по возрастанию, или столбец входит в состав индекса columnstore или хэш-индекса.

is_included_column

bit

1 = столбец является неключевым столбцом, добавленным к индексу с использованием предложения CREATE INDEX INCLUDE, или столбец входит в состав индекса columnstore.

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

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

Столбцы, добавленные неявно, поскольку они представляют собой столбец секционирования, возвращаются как 0.

Разрешения

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

Примеры.

В следующем примере возвращаются все индексы и индексированные столбцы для таблицы Production.BillOfMaterials.

USE AdventureWorks2012;
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)

См. также

Справочник

Представления каталога объектов (Transact-SQL)

Представления каталога (Transact-SQL)

sys.indexes (Transact-SQL)

sys.objects (Transact-SQL)

CREATE INDEX (Transact-SQL)

sys.columns (Transact-SQL)

Основные понятия

Часто задаваемые вопросы о запросах к системному каталогу сервера SQL Server