關於sql中的with(nolock),sql中withnolock

來源:互聯網
上載者:User

關於sql中的with(nolock),sql中withnolock

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'



著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.