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


INDEXKEY_PROPERTY (Transact-SQL)

Возвращает сведения о ключах индекса, а также NULL для XML-индексов.

Важное примечаниеВажно!

В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Вместо этого используйте sys.index_columns (Transact-SQL).

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

Синтаксис

INDEXKEY_PROPERTY ( object_ID ,index_ID ,key_ID ,property )

Аргументы

  • object_ID
    Идентификатор таблицы или индексированного представления. Аргумент object_ID имеет тип int.

  • index_ID
    Идентификатор индекса. Аргумент index_ID имеет тип int.

  • key_ID
    Положение столбца ключа индексации. Аргумент key_ID имеет тип int.

  • property
    Имя свойства, для которого возвращаются сведения. Аргумент property является символьной строкой, может иметь следующие значения.

    Значение

    Описание

    ColumnId

    Идентификатор столбца в положении key_ID индекса.

    IsDescending

    Порядок, в котором хранится индексированный столбец:

    1 = по убыванию; 0 = по возрастанию.

Типы возвращаемых данных

int

Исключения

Возвращает значение NULL в случае ошибки или если участник не имеет разрешения на просмотр объекта.

Пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые пользователю были предоставлены разрешения. Это означает, что встроенные функции, создающие метаданные, такие как INDEXKEY_PROPERTY, могут вернуть значение NULL в случае, если пользователь не имеет разрешений на объект. Дополнительные сведения см. в разделах Настройка видимости метаданных и Устранение неполадок, связанных с видимостью метаданных.

Примеры

На следующем примере показано, как можно вернуть оба свойства для индекса с идентификатором 1 и ключевым столбцом 1 в таблице Production.Location.

USE AdventureWorks;
GO
SELECT 
    INDEXKEY_PROPERTY(OBJECT_ID('Production.Location', 'U'),
        1,1,'ColumnId') AS [Column ID],
    INDEXKEY_PROPERTY(OBJECT_ID('Production.Location', 'U'),
        1,1,'IsDescending') AS [Asc or Desc order];

Результирующий набор:

Column ID   Asc or Desc order ----------- ----------------- 1           0(1 row(s) affected)