sp_indexes (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'
См. также