不幸的是,BOL 对此有点模糊,但 sys.indexes
或 sys.partitions
上的 index_id = 0
似乎指的是表本身没有聚集索引的表。是的 - 还是我错过了什么?
最佳答案
Does index_id=0 in sys.indexes refer to the table itself?
不,对于基于堆的表,它将始终存在并且它引用 IAM(索引分配映射)。对于具有聚集索引的表,它将不存在。
注意“type_desc”在这些索引上是 HEAP,有一篇关于 Index Allocation Map 的博客文章非常好。 .
因此,堆表(没有聚集索引的)将始终有一个条目 index_id = 0
的索引,而具有聚集索引的表将始终有一个 index_id = 1< 的条目
。
关于sql-server - sys.indexes 中的 index_id=0 是否引用表本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/455964/