sql – NOLOCK和UNCOMMITTED之间有什么区别?

前端之家收集整理的这篇文章主要介绍了sql – NOLOCK和UNCOMMITTED之间有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用sql Server 2012.

我写了两个查询,但NOLOCK和UnCommitted之间有什么区别?

SELECT lastname,firstname
FROM HR.Employees with (READUNCOMMITTED)

SELECT lastname,firstname 
FROM HR.Employees with (NoLock)

解决方法

NOLOCK:相当于READUNCOMMITTED(来源: MSDN)

NOLOCK或READUNCOMMITTED指定允许脏读.不会发出共享锁,以防止其他事务修改当前事务读取的数据,而由其他事务设置的独占锁定不会阻止当前事务读取锁定的数据.允许脏读取可能导致更高的并发性,但是以读取数据修改为代价,然后被其他事务回滚

READUNCOMMITTED和NOLOCK提示仅适用于数据锁.所有查询(包括具有READUNCOMMITTED和NOLOCK提示查询)在编译和执行期间获取Sch-S(模式稳定性)锁.因此,当并发​​事务在表上保存Sch-M(模式修改)锁时,查询被阻止

猜你在找的MsSQL相关文章