К сожалению, BOL немного расплывчата в этом, но index_id = 0
на sys.indexes
или sys.partitions
, как представляется, относится к самой таблице, где в таблице нет кластерного индекса. Правда - или я чего-то не хватает?
Указывает ли index_id = 0 в sys.indexes на таблицу?
Ответ 1
Указывает ли index_id = 0 в sys.indexes к самой таблице?
Нет. Для таблиц с кучей он всегда будет существовать и относится к IAM (Карта распределения индексов). Для таблиц с кластеризованными индексами он не будет существовать.
Обратите внимание, что "type_desc" - HEAP для этих индексов, есть действительно хорошая запись в блоге о Карта распределения индексов.
Итак, таблицы Heap (те, у которых нет кластерного индекса) всегда будут иметь один индекс с записью index_id = 0
, а таблицы с кластерными индексами всегда будут иметь запись с index_id = 1
.