请问如何在SQL SERVER里防止多用户同时修改记录?是不是要在执行SQL语句的前面加上TRY EXCEPT啊

解决方案 »

  1.   

    刚才做了个实验,有2种方法
    1.增加一个标志列,每个用户取的记录设置一个标志。
    2.用SQL SERVER 的事务与锁实现
    说一下第2种方法
    BEGIN TRANUPDATE ASET NAME='ABC'FROM tb A WITH(UPDLOCK,READPAST)--用READPAST将跳过被上锁的记录,从而实现N个连接同时操作一个表时,只有一个连接独占某记录WHERE ID=1END TRAN
      

  2.   

    在程序中使用事務﹐BeginTrans,CommitTrans,RollbackTrans
      

  3.   

    在程序中使用事務﹐BeginTrans,CommitTrans,RollbackTrans
      

  4.   

    1.显式使用Lock2.使用存储过程,存储过程不能同时被调用3.使用事务
      

  5.   

    加一个timestamp类型字段 然后修改前保存这个字段值 保存前判断这个字段值是否被改变就可以了不过感觉没这个必要  很少情况下会同时修改   就算同时修改  后保存的那个也会报错:无法更新定位行