关于sql中的with(nolock)
生活随笔
收集整理的這篇文章主要介紹了
关于sql中的with(nolock)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL Server 中的 NOLOCK 到底是什么意思
一般用于此類語句中:select * from t with(NOLOCK)
nolock是不加鎖查詢,可以讀取被事務鎖定的數據,也稱為臟讀。
說明:
使當前會話的查詢,不受其它會話的事務所阻塞。
但是這樣做,就讀取了其它事務的“修改后未提交的”數據。
也就是允許“READ UNCOMMITTED”
下面舉例說明:
在sqlserver中打開一個窗口:
寫下如下語句:
begin tran update STUDENT set sname='111111' waitfor delay '0:0:10'update STUDENT set sname='222222' commit tran
在sqlserver中打開另一個窗口:
寫下如下語句:
select * from student with(nolock)先執行第一個窗口,10秒內執行第二個窗口(最好2秒后,不要太快,因為第一個窗口執行需要一定的時間)會查詢到的結果是sname = '111111'
如果把第二個窗口的sql語句改為:
select * from student則,第二個窗口不會立即返回,他會等到第一個窗口執行完畢之后,再進行查詢,返回結果 sname = '222222'
總結
以上是生活随笔為你收集整理的关于sql中的with(nolock)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lcx源代码以及免杀的研究
- 下一篇: 事务使用简明教程