【问题标题】:How to apply lock on table level in SQL server如何在 SQL Server 中的表级别应用锁定
【发布时间】:2016-01-04 14:26:30
【问题描述】:

我正在使用 SQL Server 2008 R2 版本,并希望在从表中选择数据时在表级别应用锁定。

由于应用 NO_LOCK 会导致 DIRTY READ 问题,因此希望在仅包含域数据而不包含事务数据的表上应用 NO_LOCK。即更改频率非常低的数据。

请提出任何在域表上应用 LOCK 的方法。

【问题讨论】:

    标签: sql-server-2008 nolock


    【解决方案1】:

    您不需要在读取 (SELECT) 时锁定表,因为读取始终会获取表或行上的共享锁。 WITH(NOLOCK) 表提示也只允许读取未提交的数据;即其他会话尚未插入和提交的行。您可以考虑将TRANSACTION ISOLATION LEVEL 设置为READ COMMITED 以确保未提交的数据永远不会变红。

    【讨论】:

    • 有没有办法禁用共享锁?
    猜你喜欢
    • 2018-06-27
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多