ReadUncommitted是否暗示NoLock

时间:2020-03-05 18:44:27  来源:igfitidea点击:

在SQL Server 2005中编写SQL语句时,READUNCOMMITTED查询提示是否暗含NOLOCK,或者我也必须手动指定它吗?

因此:

With (NoLock, ReadUnCommitted)

与:

With (ReadUnCommitted)

解决方案

回答

我想你可以这么说

ReadUnCommitted具有NoLock的功能

但是你不能这么说

NoLock具有ReadUnCommitted的功能

回答

根据卡伦·德莱尼(Kalen Delaney)的说法...

NOLOCK提示与索引选项无关。提示告诉SQL
服务器在执行SELECT操作时不请求锁定,因此会有
与已经锁定的数据没有冲突。索引选项只说明
SQL Server允许进行锁定时,此级别的锁定是允许的
发生。例如,如果关闭了ALLOW_ROW_LOCKS,则唯一可能的锁
将是页锁或者表锁。索引选项不会强制将锁设为
按住时,它们仅控制锁的可能大小。

为回答我们主题中的问题,请提供NOLOCK提示和
READUNCOMMITTED提示是等效的。

回答

是的,它们是相同的