为什么Sp_lock不显示RID类型?

时间:2019-11-29 17:41:26

标签: sql-server

当我在数据库上执行sp_lock时,我看到一些具有RID wich的行定义了wich记录被锁定: enter image description here

如果我在另一台服务器上和另一位用户与另一台数据库上执行sp_lock,我不会获得RID: enter image description here

为什么?可能是用户的授权问题吗?

1 个答案:

答案 0 :(得分:1)

数据库中的表是一个堆。

https://docs.microsoft.com/en-us/sql/relational-databases/indexes/heaps-tables-without-clustered-indexes

“当表存储为堆时,通过参考行标识符(RID)来标识各个行,该行标识符由文件号,数据页号和页面上的插槽组成。行id小而有效结构。”

您的dml语句需要锁定相应的行,并且每一行都由RID标识。

在另一台服务器上,该表具有另一个表和另一个用户,是一个群集的表。 每行由聚簇索引的“值”标识。 您的dml语句需要锁定相应的行,并且每一行都由KEY(索引值)标识。