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


INDEXPROPERTY (Transact-SQL)

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

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

Синтаксис

INDEXPROPERTY ( object_ID , index_or_statistics_name , property ) 

Аргументы

  • object_ID
    Выражение, которое содержит идентификационный номер объекта таблицы или индексированного представления, для которого предоставляются сведения о свойстве индекса. Аргумент object_ID имеет тип int.

  • index_or_statistics_name
    Выражение, которое содержит имя индекса или статистики, для которой возвращаются сведения о свойстве. Аргумент index_or_statistics_name имеет тип nvarchar(128).

  • property
    Выражение, которое содержит имя возвращаемого свойства базы данных. Аргумент property имеет тип varchar(128) и может принимать одно из следующих значений.

    ПримечаниеПримечание

    Если не указано иное, значение NULL возвращается в следующих случаях: если аргумент property не является допустимым именем свойства, если аргумент object_ID не является допустимым идентификатором объекта, если аргумент object_ID не является поддерживаемым типом объекта для указанного свойства или если участник не имеет разрешения на просмотр метаданных объекта.

    Свойство

    Описание

    Значение

    IndexDepth

    Глубина индекса.

    Количество уровней индекса.

    NULL = Неверный XML-индекс или вход.

    IndexFillFactor

    Значение коэффициента заполнения, использованное при создании индекса или при его последней перестройке.

    Коэффициент заполнения.

    IndexID

    Идентификатор индекса указанной таблицы или индексированного представления.

    Идентификатор индекса.

    IsAutoStatistics

    Статистики были сформированы параметром AUTO_CREATE_STATISTICS инструкции ALTER DATABASE.

    1 = True;

    0 = False или XML-индекс.

    IsClustered

    Кластеризованный индекс.

    1 = True;

    0 = False или XML-индекс.

    IsDisabled

    Индекс отключен.

    1 = True;

    0 = False.

    NULL = Введенные значения недопустимы.

    IsFulltextKey

    Индекс является полнотекстовым ключом для таблицы.

    1 = True;

    0 = False или XML-индекс.

    NULL = Введенные значения недопустимы.

    IsHypothetical

    Индекс является гипотетическим и не может использоваться напрямую в качестве пути доступа к данным. Гипотетические индексы содержат статистики уровня столбца и управляются и используются помощником по настройке ядра СУБД.

    1 = True;

    0 = False или XML-индекс.

    NULL = Введенные значения недопустимы.

    IsPadIndex

    Индекс задает пространство, которое должно оставаться открытым на каждом внутреннем узле.

    1 = True;

    0 = False или XML-индекс.

    IsPageLockDisallowed

    Значение блокировки страницы, установленное параметром ALLOW_PAGE_LOCKS инструкции ALTER INDEX.

    1 = Блокировка страниц запрещена;

    0 = Блокировка страниц разрешена.

    NULL = Введенные значения недопустимы.

    IsRowLockDisallowed

    Значение блокировки строк, установленное параметром ALLOW_ROW_LOCKS инструкции ALTER INDEX.

    1 = Блокировка строк запрещена;

    0 = Блокировка строк разрешена.

    NULL = Введенные значения недопустимы.

    IsStatistics

    Аргумент index_or_statistics_name является статистикой, созданной инструкцией CREATE STATISTICS или параметром AUTO_CREATE_STATISTICS инструкции ALTER DATABASE.

    1 = True;

    0 = False или XML-индекс.

    IsUnique

    Индекс является уникальным.

    1 = True;

    0 = False или XML-индекс.

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

int

Исключения

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

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

Примеры

Следующий пример возвращает значения свойств IsClustered, IndexDepth и IndexFillFactor для индекса PK_Employee_EmployeeID таблицы Employee.

USE AdventureWorks2008R2;
GO
SELECT 
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_BusinessEntityID','IsClustered')AS [Is Clustered],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_BusinessEntityID','IndexDepth') AS [Index Depth],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_BusinessEntityID','IndexFillFactor') AS [Fill Factor];
GO

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

Is Clustered Index Depth Fill Factor ------------ ----------- ----------- 1            2           0(1 row(s) affected)