我有两个事务(A,B),都会对同一表进行插入或更新操作,其中B事务会进行很多次更新.
更新都是先cursor取数据,然后运算之类的,再更新.这样好像会出现更新丢失的问题.
怎 样解决呢,谢谢!
DB的设定 READ_COMMITTED_SNAPSHOT ON

解决方案 »

  1.   

    更新的时侯本来就是排他的吧!你是说在光标做成时的select语句加updlock
      

  2.   

    隔离级别READ_COMMITTED_SNAPSHOT,本身即是可以让其他事务来更新数据的,有何问题.另,这还跟游标的类型有关,游标用的是什么类型的?
      

  3.   

    在游标读取的时候加UPDLOCK更新锁,这样别的事务只可以读加更新锁的行而不能修改,要等到此事务结束后才能进行修改,这样可以防止丢失更新,但也增加了锁的数量,可能造成其他潜在问题.