关于UPDATE时锁的问题

Shuang 240 信誉分
2025-01-24T03:17:22.0733333+00:00

我查阅到相关资料说: “当共享锁被持有时,其他事务可以读取但不能修改锁定的数据。"

所以是否意味着我可以在UPDATE时锁住数据,但是不影响别的Select语句去查询数据?

因为如果是UPDATE锁的话,我无法更新除非回滚或提交事务。

SQL Server
SQL Server
Microsoft 关系数据库管理和分析系统的一个系列,用于实现电子商务、业务线和数据仓库解决方案。
203 个问题
Transact-SQL
Transact-SQL
ANSI SQL 语言的 Microsoft 扩展,包括过程编程、局部变量和各种支持函数。
28 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. LiHongMSFT-4306 30,511 信誉分
    2025-01-24T06:08:49.9033333+00:00

    你好,

    所以是否意味着我可以在UPDATE时锁住数据,但是不影响别的Select语句去查询数据?

    是的,你的理解是对的。

    一般来讲 U 锁比 S 锁复杂一些:U 与 S 兼容,但 S 与 U 不兼容。这样,即使资源上持有 S 锁,也可以授予 U 锁。进一步的 S 锁请求将被阻止,因为它们与 U 不兼容。当你需要真正进行写入时,你可以将 U 升级到 X,而不会有被其他的 S 锁锁死的情况。


    如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。