declare @err int
set @err=0
begin tran
update tb set id=10 where id=2
set @err=@err+abs(@@error)
if @err=0
commit
else
rollback
set @err=0
begin tran
update tb set id=10 where id=2
set @err=@err+abs(@@error)
if @err=0
commit
else
rollback
注意: 锁定数据库的一个表的区别SELECT * FROM table WITH (HOLDLOCK)
其他事务可以读取表,但不能更新删除SELECT * FROM table WITH (TABLOCKX)
其他事务不能读取表,更新和删除