SQL Server中各類型的鎖(LOCK)
下面將為您介紹SQL Server中鎖(LOCK)的各種類型,供您參考,希望對您學(xué)習SQL Server會有所幫助。
1.HOLDLOCK: 在該表上保持共享鎖,直到整個事務(wù)結(jié)束,而不是在語句執(zhí)行完立即釋放所添加的鎖?! ?/p>
2.NOLOCK:不添加共享鎖和排它鎖,當這個選項生效后,可能讀到未提交讀的數(shù)據(jù)或“臟數(shù)據(jù)”,這個選項僅僅應(yīng)用于SELECT語句?! ?/p>
3.PAGLOCK:指定添加頁鎖(否則通??赡芴砑颖礞i)?!?/p>
4.READCOMMITTED用與運行在提交讀隔離級別的事務(wù)相同的鎖語義執(zhí)行掃描。默認情況下,SQL Server 2000 在此隔離級別上操作。。
5.READPAST: 跳過已經(jīng)加鎖的數(shù)據(jù)行,這個選項將使事務(wù)讀取數(shù)據(jù)時跳過那些已經(jīng)被其他事務(wù)鎖定的數(shù)據(jù)行,而不是阻塞直到其他事務(wù)釋放鎖,READPAST僅僅應(yīng)用于READ COMMITTED隔離性級別下事務(wù)操作中的SELECT語句操作?! ?/p>
6.READUNCOMMITTED:等同于NOLOCK?! ?/p>
7.REPEATABLEREAD:設(shè)置事務(wù)為可重復(fù)讀隔離性級別?!?/p>
8.ROWLOCK:使用行級鎖,而不使用粒度更粗的頁級鎖和表級鎖?! ?/p>
9.SERIALIZABLE:用與運行在可串行讀隔離級別的事務(wù)相同的鎖語義執(zhí)行掃描。等同于 HOLDLOCK。10. TABLOCK:指定使用表級鎖,而不是使用行級或頁面級的鎖,SQL Server在該語句執(zhí)行完后釋放這個鎖,而如果同時指定了HOLDLOCK,該鎖一直保持到這個事務(wù)結(jié)束。
11. TABLOCKX:指定在表上使用排它鎖,這個鎖可以阻止其他事務(wù)讀或更新這個表的數(shù)據(jù),直到這個語句或整個事務(wù)結(jié)束?!?/p>
12. UPDLOCK :指定在讀表中數(shù)據(jù)時設(shè)置更新 鎖(update lock)而不是設(shè)置共享鎖,該鎖一直保持到這個語句或整個事務(wù)結(jié)束,使用UPDLOCK的作用是允許用戶先讀取數(shù)據(jù)(而且不阻塞其他用戶讀數(shù)據(jù)),并且保證在后來再更新數(shù)據(jù)時,這一段時間內(nèi)這些數(shù)據(jù)沒有被其他用戶修改。
【編輯推薦】
SQL server服務(wù)器版在XP系統(tǒng)下的安裝方法
SQL數(shù)據(jù)庫自動備份并刪除源文件的實現(xiàn)