佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > sqlserver 鎖表語句分享

sqlserver 鎖表語句分享

熱門標(biāo)簽:Linux服務(wù)器 地方門戶網(wǎng)站 鐵路電話系統(tǒng) 呼叫中心市場需求 百度競價(jià)排名 網(wǎng)站排名優(yōu)化 AI電銷 服務(wù)外包
鎖定數(shù)據(jù)庫的一個(gè)表

SELECT * FROM table WITH (HOLDLOCK)

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

SELECT * FROM table WITH (HOLDLOCK)

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

SELECT * FROM table WITH (TABLOCKX)

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

SELECT 語句中“加鎖選項(xiàng)”的功能說明

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

功能說明: 

NOLOCK(不加鎖)

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

HOLDLOCK(保持鎖)

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

UPDLOCK(修改鎖)

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

TABLOCK(表鎖)

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

PAGLOCK(頁鎖)

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

TABLOCKX(排它表鎖)

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



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

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

  PAGLOCK 在使用一個(gè)表鎖的地方用多個(gè)頁鎖

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

  ROWLOCK 強(qiáng)制使用行鎖

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

  UPLOCK 強(qiáng)制在讀表時(shí)使用更新而不用共享鎖

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

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

  SELECT * FROM table WITH (TABLOCKX) 其他事務(wù)不能讀取表,更新和刪
您可能感興趣的文章:
  • sqlserver鎖表、解鎖、查看銷表的方法
  • sqlserver2008鎖表語句詳解(鎖定數(shù)據(jù)庫一個(gè)表)
  • SqlServer表死鎖的解決方法分享
  • Sql Server如何查看被鎖的表及解鎖的方法

標(biāo)簽:衡水 黃山 銅川 蘭州 仙桃 湘潭 湖南 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《sqlserver 鎖表語句分享》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    岢岚县| 富锦市| 昌都县| 普兰店市| 汉沽区| 平谷区| 托克逊县| 加查县| 茂名市| 于都县| 临汾市| 沙田区| 西昌市| 同江市| 盐池县| 沛县| 平安县| 两当县| 金乡县| 合江县| 嘉义市| 舒兰市| 龙游县| 肇庆市| 马山县| 武鸣县| 长沙县| 桦甸市| 斗六市| 体育| 八宿县| 六枝特区| 定西市| 芜湖市| 西乡县| 团风县| 台东市| 永川市| 承德县| 开封市| 临武县|