欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

sqlserver 鎖表語句分享

 更新時間:2012年01月30日 23:13:42   作者:  
sqlserver 鎖表語句分享,需要的朋友可以參考下
鎖定數(shù)據(jù)庫的一個表

SELECT * FROM table WITH (HOLDLOCK)

注意: 鎖定數(shù)據(jù)庫的一個表的區(qū)別

SELECT * FROM table WITH (HOLDLOCK)

其他事務(wù)可以讀取表,但不能更新刪除

SELECT * FROM table WITH (TABLOCKX)

其他事務(wù)不能讀取表,更新和刪除

SELECT 語句中“加鎖選項”的功能說明

SQL Server提供了強大而完備的鎖機制來幫助實現(xiàn)數(shù)據(jù)庫系統(tǒng)的并發(fā)性和高性能。用戶既能使用SQL Server的缺省設(shè)置也可以在select 語句中使用“加鎖選項”來實現(xiàn)預(yù)期的效果。 本文介紹了SELECT語句中的各項“加鎖選項”以及相應(yīng)的功能說明。

功能說明: 

NOLOCK(不加鎖)

此選項被選中時,SQL Server 在讀取或修改數(shù)據(jù)時不加任何鎖。 在這種情況下,用戶有可能讀取到未完成事務(wù)(Uncommited Transaction)或回滾(Roll Back)中的數(shù)據(jù), 即所謂的“臟數(shù)據(jù)”。

HOLDLOCK(保持鎖)

此選項被選中時,SQL Server 會將此共享鎖保持至整個事務(wù)結(jié)束,而不會在途中釋放。

UPDLOCK(修改鎖)

此選項被選中時,SQL Server 在讀取數(shù)據(jù)時使用修改鎖來代替共享鎖,并將此鎖保持至整個事務(wù)或命令結(jié)束。使用此選項能夠保證多個進程能同時讀取數(shù)據(jù)但只有該進程能修改數(shù)據(jù)。

TABLOCK(表鎖)

此選項被選中時,SQL Server 將在整個表上置共享鎖直至該命令結(jié)束。 這個選項保證其他進程只能讀取而不能修改數(shù)據(jù)。

PAGLOCK(頁鎖)

此選項為默認(rèn)選項, 當(dāng)被選中時,SQL Server 使用共享頁鎖。

TABLOCKX(排它表鎖)

此選項被選中時,SQL Server 將在整個表上置排它鎖直至該命令或事務(wù)結(jié)束。這將防止其他進程讀取或修改表中的數(shù)據(jù)。



HOLDLOCK 持有共享鎖,直到整個事務(wù)完成,應(yīng)該在被鎖對象不需要時立即釋放,等于SERIALIZABLE事務(wù)隔離級別

  NOLOCK 語句執(zhí)行時不發(fā)出共享鎖,允許臟讀 ,等于 READ UNCOMMITTED事務(wù)隔離級別

  PAGLOCK 在使用一個表鎖的地方用多個頁鎖

  READPAST 讓sql server跳過任何鎖定行,執(zhí)行事務(wù),適用于READ UNCOMMITTED事務(wù)隔離級別只跳過RID鎖,不跳過頁,區(qū)域和表鎖

  ROWLOCK 強制使用行鎖

  TABLOCKX 強制使用獨占表級鎖,這個鎖在事務(wù)期間阻止任何其他事務(wù)使用這個表

  UPLOCK 強制在讀表時使用更新而不用共享鎖

注意: 鎖定數(shù)據(jù)庫的一個表的區(qū)別

  SELECT * FROM table WITH (HOLDLOCK) 其他事務(wù)可以讀取表,但不能更新刪除

  SELECT * FROM table WITH (TABLOCKX) 其他事務(wù)不能讀取表,更新和刪

相關(guān)文章

最新評論