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


INDEX_COL (Transact-SQL)

Возвращает имя индексированного столбца. Возвращает значение NULL для XML-индексов.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

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 AdventureWorks;
GO
SELECT 
    INDEX_COL (N'AdventureWorks.Sales.SalesOrderDetail', 1,1) AS
        [Index Column 1], 
    INDEX_COL (N'AdventureWorks.Sales.SalesOrderDetail', 1,2) AS
        [Index Column 2]
;
GO

Так выглядит результирующий набор:

Index Column 1      Index Column 2-----------------------------------------------SalesOrderID        SalesOrderDetailID