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


sp_indexes (Transact-SQL)

Область применения: SQL Server

Возвращает индексную информацию для указанной удаленной таблицы.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_indexes
    [ @table_server = ] N'table_server'
    [ , [ @table_name = ] N'table_name' ]
    [ , [ @table_schema = ] N'table_schema' ]
    [ , [ @table_catalog = ] N'table_catalog' ]
    [ , [ @index_name = ] N'index_name' ]
    [ , [ @is_unique = ] is_unique ]
[ ; ]

Аргументы

[ @table_server = ] N'table_server'

Имя связанного сервера под управлением SQL Server, для которого запрашиваются сведения о таблице. @table_server — sysname без значения по умолчанию.

[ @table_name = ] N'table_name'

Имя удаленной таблицы, для которой предоставляются сведения о индексе. @table_name — sysname с значением по умолчаниюNULL. Если NULLвозвращаются все таблицы в указанной базе данных.

[ @table_schema = ] N'table_schema'

Задает схему таблицы. @table_schema имеет имя sysname с значением по умолчаниюNULL. В среде SQL Server это значение соответствует владельцу таблицы.

[ @table_catalog = ] N'table_catalog'

Имя базы данных, в которой находится @table_name . @table_catalog — sysname с значением по умолчаниюNULL. Если NULL@table_catalog по masterумолчанию.

[ @index_name = ] N'index_name'

Имя индекса, для которого запрашиваются сведения. @index_name — sysname с значением по умолчаниюNULL.

[ @is_unique = ] is_unique

Тип индекса, для которого возвращаются сведения. @is_unique бит и может быть одним из следующих значений.

значение Описание
1 Возвращает сведения об уникальных индексах.
0 Возвращает сведения об индексах, которые не являются уникальными.
NULL (по умолчанию) Возвращает сведения обо всех индексах.

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

Имя столбца Тип данных Description
TABLE_CAT sysname Имя базы данных, в которой расположена указанная таблица.
TABLE_SCHEM sysname Схема для таблицы.
TABLE_NAME sysname Имя удаленной таблицы.
NON_UNIQUE smallint Является ли индекс уникальным или неуникальным:

0 = уникальный
1 = не уникальный
INDEX_QUALIFER sysname Имя владельца индекса. Некоторые продукты системы управления базами данных (СУБД) позволяют пользователям, кроме владельца таблицы, создавать индексы. В SQL Server этот столбец всегда совпадает TABLE_NAME.
INDEX_NAME sysname Имя индекса.
TYPE smallint Тип индекса:

0 = статистика для таблицы
1 = кластеризовано
2 = Хэшированные
3 = Другое
ORDINAL_POSITION int Порядковый номер столбца в индексе. Первый столбец в индексе — 1это . Этот столбец всегда возвращает значение .
COLUMN_NAME sysname Соответствующее имя столбца для каждого возвращаемого TABLE_NAME столбца.
ASC_OR_DESC varchar Порядок, используемый в сортировке:

A = возрастание
D = убывание
NULL = неприменимо

SQL Server всегда возвращается A.
CARDINALITY int Число строк в таблице или уникальных значений в индексе.
PAGES int Количество страниц для хранения индекса или таблицы.
FILTER_CONDITION nvarchar(4000) SQL Server не возвращает значение.

Разрешения

Требуется SELECT разрешение на схему.

Примеры

Следующий пример возвращает все сведения об индексе из таблицы Employees базы данных AdventureWorks2022 на связанном сервере Seattle1.

EXEC sp_indexes @table_server = 'Seattle1',
    @table_name = 'Employee',
    @table_schema = 'HumanResources',
    @table_catalog = 'AdventureWorks2022';