从我最近的一些测试和阅读中看来,似乎XLOCK的"X"(独家)名称部分具有误导性.它实际上不会锁定UPDLOCK.如果它是独占的,它将阻止外部SELECT,但它不会.
我无法从阅读或测试中看到两者之间的区别.
XLOCK创建独占锁的唯一时间是与TABLOCK一起使用时.我的第一个问题是"为什么只有这种粒度?"
此外,我遇到了一个博客,其中说明了以下内容:
但请注意XLOCK提示.SQL Server将有效地忽略XLOCK提示!SQL Server检查自最早的打开事务以来数据是否已更改,这是一种优化.如果不是,则忽略xlock.这使得xlock提示基本上没用,应该避免.
有人遇到过这种现象吗?
根据我所看到的情况,似乎应该忽略这一提示.