本帖最后由 x_wy46 于 2011-11-03 23:28:57 编辑

解决方案 »

  1.   

    锁一个表的某一行
    SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
    begin tran
    select * from tablename with (rowlock) where id=xxx
    xxxx
    commit tran
      

  2.   

    用触发器吧
     如何实现自编号
    http://blog.csdn.net/roy_88/article/details/1424370
    最好用单号记数据,一次要取多少,一次可以计算和生成,再分配
      

  3.   

    对于每个后续 Transact-SQL 语句,SQL Server 将所有共享锁一直保持到事务结束为止。
      

  4.   

    insert的时候 系统会自动加共享锁为了控制并发带来的问题,可以加行锁。