sys.indexes中的index_id = 0是否引用表本身?

Con*_*lls 2 sql-server sql-server-2005 data-dictionary

不幸的是,BOL在这方面有点模糊,但是index_id = 0在表上sys.indexes或者sys.partitions似乎是指表中没有聚簇索引的表.是的 - 或者我错过了什么?

Sam*_*ron 8

sys.indexes中的index_id = 0是否引用表本身?

不,对于基于堆的表,它将始终存在,并且它引用IAM(索引分配映射).对于具有聚簇索引的表,它将不存在.

请注意,"type_desc"是这些索引上的HEAP,有关于索引分配映射的非常好的博客条目.

因此,堆表(没有聚簇索引的表)将始终具有一个带有条目的索引index_id = 0,而具有聚簇索引的表将始终具有条目index_id = 1.