INDEX_COL (Transact-SQL)
Возвращает имя индексированного столбца. Возвращает значение NULL для XML-индексов.
Синтаксис
INDEX_COL ( '[ database_name . [ schema_name ] .| schema_name ] table_or_view_name', index_id , key_id )
Аргументы
database_name
Имя базы данных.schema_name
Имя схемы, которой принадлежит индекс.table_or_view_name
Имя таблицы или индексированного представления. Аргумент table_or_view_name должен быть выделен одинарными кавычками и может быть полностью квалифицирован именем базы данных и именем схемы.index_id
Идентификатор индекса. Аргумент index_ID имеет тип int.key_id
Позиция ключевого столбца индекса. Аргумент key_ID имеет тип int.
Типы возвращаемых данных
nvarchar (128)
Исключения
Возвращает значение NULL в случае ошибки или если вызывающая сторона не имеет разрешения для просмотра объекта.
Пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые пользователю были предоставлены разрешения. Это означает, что встроенные функции по формированию метаданных, например INDEX_COL, могут вернуть значение NULL, если пользователь не имеет каких-либо разрешений на объект. Дополнительные сведения см. в разделах Настройка видимости метаданных и Устранение неполадок, связанных с видимостью метаданных.
Примеры
А. Использование INDEX_COL для возвращения имени столбца индекса
В приведенном ниже примере возвращаются имена двух ключевых столбцов в индексе PK_SalesOrderDetail_SalesOrderID_LineNumber.
USE AdventureWorks2008R2;
GO
SELECT
INDEX_COL (N'AdventureWorks2008R2.Sales.SalesOrderDetail', 1,1) AS
[Index Column 1],
INDEX_COL (N'AdventureWorks2008R2.Sales.SalesOrderDetail', 1,2) AS
[Index Column 2]
;
GO
Так выглядит результирующий набор:
Index Column 1 Index Column 2-----------------------------------------------SalesOrderID SalesOrderDetailID