使用 "SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED" 和 NOLOCK 有什么区别?它们中哪一个更好?
使用 "SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED" 和 NOLOCK 有什么区别?它们中哪一个更好?
它们是相同的东西,只是作用范围不同。NOLOCK基于每个表设置,而SET Transaction...
可以作为一个块放置。
NOLOCK是一个查询提示,因此仅适用于指定的查询中的特定表。
设置事务隔离级别将应用于当前连接中执行的所有代码,直到明确修改为止。
需要澄清的是,从功能上讲,工作中的隔离级别是相同的,但覆盖的范围可能不同。
它们有相同的作用,只是一个用作锁提示(nolock),而另一个用于连接范围。
无论哪种方式都要小心 - 根据您的应用程序,脏读可能是非常糟糕的事情。读取相同的记录两次或由于页面移动而错过记录可能会使用户感到非常困惑...
NOLOCK
提示已被弃用,将被等效的READUNCOMMITTED
提示所取代。来源。 - JeroenNOLOCK
已被弃用。 我认为当前NOLOCK
和READUNCOMMITTED
提示都是可用的。 - RBT