проверить, существует ли некластеризованный индекс в столбце таблицы - PullRequest
3 голосов
/ 14 июля 2009

В SQL Server 2000 как проверить, существует ли некластеризованный индекс для одного столбца таблицы?

Ответы [ 3 ]

5 голосов
/ 14 июля 2009

Вы смотрите это в sysindexes и sysindexkeys . Вы также можете использовать sp_help для объяснения таблицы, включая все индексы.

select k.*, x.name
from  sysindexes x 
join sysindexkeys k on k.id = x.id
join syscolumns c on c.id = x.id and k.colid=c.colid
where x.id = object_id('yourtable')
and c.name='yourcolumn'
and x.indid > 1

Из столбца k.keyno можно определить положение ключа в индексе, если он не равен 1, то столбец, вероятно, SARGable, только если он объединен с другими столбцами, которые находятся перед ним в порядке ключей индекса.

1 голос
/ 14 июля 2009

Ознакомьтесь с представлением "sysindexes" ... Я сейчас на Mac, поэтому не могу дать вам точный, проверенный запрос ..

SELECT * FROM sysindexes
0 голосов
/ 14 июля 2009

проверьте столбец типа (для значения <> 1, что означает некластеризованность) таблицы sys.indexes type_desc указывает CLUSTERED, NONCLUSTERED или HEAP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...