我调试一段sql,执行到3行
然后我用profiler 跟踪发现当获取更新行X锁后又释放了一次,但是model=0-null,根据官方描述这个是释放后获得的模式,也就是说释放后和其它锁兼容,还是说它释放了其它锁,这里不知道这个释放是什么意思。
因为我的事务还没提交,不会释放X锁。我们查询了锁情况也确实没释放。
当我执行提交事务后又进行了一遍释放。但是释放model=5-X
我没搞懂第一次的释放是释放什么,因为官方的描述和实际不是太吻合。
https://learn.microsoft.com/zh-cn/sql/relational-databases/event-classes/lock-released-event-class?redirectedfrom=MSDN&view=sql-server-ver16
感谢dudu,意思是说这个model的描述是不准确的,但是我看到一直没有修改过来。这个描述是说释放事件正在释放的模式,而不是释放后获得的模式哈。因为如果按照文档描述“释放锁后得到的模式” 那么0-null 也就是释放了所有锁!