begin tran
update tabe set id=id
select Max(F1) from Tabe
update Tabe set ID=  ...
commit tran

解决方案 »

  1.   

    TABLOCK: 使用表锁代替粒度更细的行级锁或页级锁。在语句结束前,SQL Server 一直持有该锁。但是,如果同时指定 HOLDLOCK,那么在事务结束之前,锁将被一直持有。你使用了表锁定,除非可以使用其他方法代替上面的写法,不知道你上面的是不是在存储过程里面,没有的话试试下面的:begin tran
    select Max(F1) from Tabe with(TABLOCK)
    go
    ...
    ...
    update Tabe set ID=  ...
    commit tran
      

  2.   

    phantomMan() 是在select Max(F1) from Tabe with(TABLOCK)
    下加一个go吗