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

标签 sql-server sql-server-2005 data-dictionary

不幸的是,BOL 对此有点模糊,但 sys.indexessys.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/

相关文章:

sql-server - 非数字索引的表现

sql - 如何在 SQL Server 中回滚或提交事务

oracle - 尝试从 sql developer 创建 Db doc 并且它成功运行但是当我单击 index.html 时找不到文件

c# - 如何获取本地网络中已安装并存在的Sql Server实例(或SqlExpress)的列表

sql - 在一个语句中选择并分配给变量?

sql - 编写此相关查询的最佳方式是什么? (根据优先级选择可能包含 NULL 的价格)

sql-server - 如何在 SQL Server 2005 Express 中启用全文索引?

sql - 如何查找仅包含数字数据的非数字列?

sql - Oracle 等价于 information_schema.tables

sql - 自定义 Sql Server 对象资源管理器右键单击菜单项