計算機學習積累

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

          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 閱讀(350) 評論(0)  編輯  收藏 所屬分類: 數據庫

          主站蜘蛛池模板: 剑川县| 扎鲁特旗| 高密市| 揭东县| 林西县| 岑巩县| 元阳县| 特克斯县| 浙江省| 太仓市| 大丰市| 逊克县| 涿鹿县| 保康县| 巩义市| 万安县| 垣曲县| 绵阳市| 满城县| 绿春县| 交城县| 开平市| 宁城县| 开封市| 修文县| 洛隆县| 沁源县| 七台河市| 兴山县| 鹤壁市| 竹山县| 罗平县| 贵阳市| 那曲县| 高州市| 广昌县| 界首市| 巴林右旗| 江西省| 建平县| 阿尔山市|