INDEX_COL (Transact-SQL)
Возвращает имя индексированного столбца. Возвращает значение NULL для XML-индексов.
Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск). |
Cинтаксические обозначения в 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 AdventureWorks2012;
GO
SELECT
INDEX_COL (N'AdventureWorks2012.Sales.SalesOrderDetail', 1,1) AS
[Index Column 1],
INDEX_COL (N'AdventureWorks2012.Sales.SalesOrderDetail', 1,2) AS
[Index Column 2]
;
GO
Так выглядит результирующий набор:
Index Column 1 Index Column 2
-----------------------------------------------
SalesOrderID SalesOrderDetailID