計(jì)算機(jī)學(xué)習(xí)積累

          ----轉(zhuǎn)載有理,轉(zhuǎn)載是想研究,想研究才會(huì)看,看了才會(huì)有感想,轉(zhuǎn)載后我有時(shí)會(huì)寫一些自己的感受
          數(shù)據(jù)加載中……

          sqlserver的updlock鎖 (轉(zhuǎn))

          UPDLOCK
            讀取表時(shí)使用更新鎖,而不使用共享鎖,并將鎖一直保留到語句或事務(wù)的結(jié)束。UPDLOCK 的優(yōu)點(diǎn)是允許您讀取數(shù)據(jù)(不阻塞其它事務(wù))并在以后更新數(shù)據(jù),同時(shí)確保自從上次讀取數(shù)據(jù)后數(shù)據(jù)沒有被更改。
            這是SqlServer2000中對(duì)更新鎖的說明.
            當(dāng)我們用UPDLOCK來讀取記錄時(shí)可以對(duì)取到的記錄加上更新鎖,從而加上鎖的記錄在其它的線程中是不能更改的只能等本線程的事務(wù)結(jié)束后才能更改,我如下示例:
            BEGIN TRANSACTION --開始一個(gè)事務(wù)
            SELECT Qty
            FROM myTable WITH (UPDLOCK)
            WHERE Id in (1,2,3)
            UPDATE myTable SET Qty = Qty - A.Qty
            FROM myTable AS A
            INNER JOIN @_Table AS B ON A.ID = B.ID
            COMMIT TRANSACTION --提交事務(wù)
            這樣在更新時(shí)其它的線程或事務(wù)在這些語句執(zhí)行完成前是不能更改ID是1,2,3的記錄的.其它的都可以修改和讀,1,2,3的只能讀,要是修改的話只能等這些語句完成后才能操作.從而保證的數(shù)據(jù)的修改正確.

          posted on 2009-04-28 16:04 freebird 閱讀(349) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          主站蜘蛛池模板: 濉溪县| 太康县| 文成县| 德令哈市| 齐齐哈尔市| 皋兰县| 巴马| 松桃| 安化县| 北流市| 余江县| 仙游县| 灵寿县| 泾源县| 修水县| 霍城县| 开化县| 清丰县| 沙湾县| 新乡县| 神木县| 兴安盟| 石渠县| 铜山县| 汉寿县| 韩城市| 磴口县| 龙山县| 凤山县| 扎囊县| 灵台县| 万荣县| 稷山县| 永春县| 沈阳市| 汉沽区| 昭平县| 肇东市| 邮箱| 酒泉市| 郧西县|