sp_indexes (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в 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 базы данных AdventureWorks2012 на связанном сервере Seattle1.

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

См. также

Справочник

Хранимые процедуры распределенных запросов (Transact-SQL)

sp_catalogs (Transact-SQL)

sp_column_privileges (Transact-SQL)

sp_foreignkeys (Transact-SQL)

sp_linkedservers (Transact-SQL)

sp_tables_ex (Transact-SQL)

sp_table_privileges (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)