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


sp_indexes (Transact-SQL)

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

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

Синтаксис

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

Аргументы

  • [ @table_server = ] 'table_server'
    Имя связанного сервера, на котором запущен SQL Server, для которого запрашиваются сведения о таблице. Аргумент table_server имеет тип sysname и не имеет значения по умолчанию.

  • [ @table_name = ] 'table_name'
    Имя удаленной таблицы, для которой задается индексная информация. Аргумент table_name имеет тип sysname и значение по умолчанию NULL. Если NULL, возвращаются все таблицы указанной базы данных.

  • [ @table_schema = ] 'table_schema'
    Задает схему таблицы. В окружении SQL Server это соответствует владельцу таблицы. Аргумент table_schema имеет тип sysname и значение по умолчанию NULL.

  • [ @table_catalog = ] 'table_db'
    Имя базы данных, в которой находится аргумент table_name. Аргумент table_db имеет тип sysname и значение по умолчанию NULL. Если NULL, то table_db принимает значение master.

  • [ @index_name = ] 'index_name'
    Имя индекса, для которого запрашиваются сведения. Аргумент index имеет тип sysname и значение по умолчанию NULL.

  • [ @is_unique = ] 'is_unique'
    Тип индекса, для которого возвращается информация. Аргумент is_unique имеет тип bit, значение по умолчанию NULL и может принимать одно из следующих значений.

    Значение

    Описание

    1

    Возвращает сведения об уникальных индексах.

    0

    Возвращает сведения об неуникальных индексах.

    NULL

    Возвращает сведения обо всех индексах.

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

Имя столбца

Тип данных

Описание

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 базы данных AdventureWorks2008R2 на связанном сервере Seattle1.

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