2011-09-08 77 views
1

因此,nolock不會採取任何鎖。它仍會尊重優秀的鎖嗎?例如,如果我嘗試選擇一個帶有nolock的行,而另一個進程已經放置了獨佔鎖,那麼將使用nolock的選擇被阻止,還是選擇該行?與nolock和獨家鎖

回答

1

我認爲使用「NOLOCK」會導致髒讀,這意味着發生某種鎖定之前存在的數據。假設,如果一個寫入鎖已經被放到一個表上來更新一些數據,並且我們試圖使用「NOLOCK」讀取數據,那麼在更新之前存在的數據會返回給我們。

希望這有助於!

+0

髒讀實際上意味着讀取未提交的記錄,而不是在更新前讀取記錄。 – JNK

+0

正是我想知道的,謝謝。 – aepheus

+0

@JNK - 只是爲了確認,你指的是[鎖定[讀取]更新解鎖]之前的差異,而不是[鎖定更新[讀取]錯誤回滾解鎖] - 未提交? – aepheus