INDEXPROPERTY (Transact-SQL)
Возвращает значение свойства именованного индекса или статистики для указанного идентификационного номера таблицы, имени индекса или статистики, а также имени свойства. Возвращает NULL для XML-индексов.
Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск). |
Cинтаксические обозначения в 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 = введенные значения недопустимы.
Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.
IsHypothetical
Индекс является гипотетическим и не может использоваться напрямую в качестве пути доступа к данным. Гипотетические индексы содержат статистики уровня столбца и управляются и используются помощником по настройке ядра СУБД.
1 = True;
0 = False или XML-индекс.
NULL = Введенные значения недопустимы.
IsPadIndex
Индекс задает пространство, которое должно оставаться открытым на каждом внутреннем узле.
1 = True
0 = False или XML-индекс.
Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.
IsPageLockDisallowed
Значение блокировки страницы, установленное параметром ALLOW_PAGE_LOCKS инструкции ALTER INDEX.
1 = Блокировка страниц запрещена;
0 = Блокировка страниц разрешена.
NULL = введенные значения недопустимы.
Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.
IsRowLockDisallowed
Значение блокировки строк, установленное параметром ALLOW_ROW_LOCKS инструкции ALTER INDEX.
1 = Блокировка строк запрещена;
0 = Блокировка строк разрешена.
NULL = введенные значения недопустимы.
Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.
IsStatistics
Аргумент index_or_statistics_name является статистикой, созданной инструкцией CREATE STATISTICS или параметром AUTO_CREATE_STATISTICS инструкции ALTER DATABASE.
1 = True;
0 = False или XML-индекс.
IsUnique
Индекс является уникальным.
1 = True
0 = False или XML-индекс.
IsColumnstore
Оптимизированный для памяти xVelocity индекс columnstore.
1 = True
0 = False
Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.
Типы возвращаемых данных
int
Исключения
Возвращает NULL при возникновении ошибки или в случае, если вызывающий объект не имеет разрешения на просмотр данного объекта.
Пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые пользователю были предоставлены разрешения. Это означает, что создающие метаданные встроенные функции, такие как INDEXPROPERTY могут вернуть значение NULL в случае, если пользователь не имеет разрешений на объект. Дополнительные сведения см. в разделе Настройка видимости метаданных.
Примеры
В следующем примере показано получение значений свойств IsClustered, IndexDepth и IndexFillFactor индекса PK_Employee_BusinessEntityID таблицы Employee базы данных AdventureWorks2012.
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];
Ниже приводится результирующий набор.
Is Clustered Index Depth Fill Factor
------------ ----------- -----------
1 2 0
(1 row(s) affected)
См. также
Справочник
sys.index_columns (Transact-SQL)
sys.stats_columns (Transact-SQL)