在控制数据库并发操作时,一般在数据库表中加入版本控制字段或时间戳字段。
但是这样一来,数据库中所有的表就都需要多加一个用来防止并发的字段了?
请问大家都是这样做的?有没有什麽不用加字段的方法来防止并发操作?
请大家帮忙

解决方案 »

  1.   

    很简单,用事务嘛;
    当用一个事务正在进行操作时,就把它要操作的表锁定起来,其他事务只能等到这个事务完成了之后 ,才能对它进行操作;create proc test
    as
    set nocount on
    begin tran..........
    commit tran
    return--如果错误,则回滚
    err:
    rollback trango
      

  2.   

    开了事务没有提交属于程序bug,是应该排除的
    目前sql server支持行锁和页锁,所以锁死整个表的情况并不多,除非你的数据量特别少
      

  3.   

    对于sql server来说,锁机制大部分不用自己编程实现,sql server帮我们实现了
      

  4.   

    实现数据库锁机制是不是在写SQL语句中加呢???
      

  5.   

    sql中的锁机制是由他自己进行管理的
    不需要我们去控制,只是
    偶尔根据你的业务需要加一些条件