計算機學習積累

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

          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)  編輯  收藏 所屬分類: 數據庫

          主站蜘蛛池模板: 九台市| 锦屏县| 沈阳市| 荔波县| 左云县| 蓝山县| 衡水市| 郸城县| 九寨沟县| 呼伦贝尔市| 山东省| 陆良县| 思茅市| 政和县| 长沙市| 日照市| 友谊县| 鄂尔多斯市| 宁化县| 文水县| 山东| 马龙县| 静安区| 景谷| 揭阳市| 乐平市| 古浪县| 赤壁市| 宁晋县| 揭东县| 肃北| 桂阳县| 桓仁| 阜新市| 江永县| 黑水县| 迁西县| 读书| 正镶白旗| 黄山市| 诏安县|