計算機學習積累

          ----轉載有理,轉載是想研究,想研究才會看,看了才會有感想,轉載后我有時會寫一些自己的感受
          數據加載中……

          sqlserver的updlock鎖 (轉)

          UPDLOCK
            讀取表時使用更新鎖,而不使用共享鎖,并將鎖一直保留到語句或事務的結束。UPDLOCK 的優點是允許您讀取數據(不阻塞其它事務)并在以后更新數據,同時確保自從上次讀取數據后數據沒有被更改。
            這是SqlServer2000中對更新鎖的說明.
            當我們用UPDLOCK來讀取記錄時可以對取到的記錄加上更新鎖,從而加上鎖的記錄在其它的線程中是不能更改的只能等本線程的事務結束后才能更改,我如下示例:
            BEGIN TRANSACTION --開始一個事務
            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 --提交事務
            這樣在更新時其它的線程或事務在這些語句執行完成前是不能更改ID是1,2,3的記錄的.其它的都可以修改和讀,1,2,3的只能讀,要是修改的話只能等這些語句完成后才能操作.從而保證的數據的修改正確.

          posted on 2009-04-28 16:04 freebird 閱讀(355) 評論(0)  編輯  收藏 所屬分類: 數據庫

          主站蜘蛛池模板: 大荔县| 衡南县| 贺州市| 舒城县| 石林| 修文县| 平和县| 彭阳县| 乌恰县| 茂名市| 土默特右旗| 广东省| 毕节市| 静海县| 崇州市| 阿图什市| 禹州市| 崇礼县| 平和县| 阿拉善盟| 丹凤县| 酒泉市| 略阳县| 宾川县| 蒲江县| 巴中市| 津市市| 怀集县| 汾西县| 阳曲县| 桑日县| 武夷山市| 隆德县| 巴彦淖尔市| 新民市| 富阳市| 翁牛特旗| 临邑县| 天水市| 全南县| 会同县|