22,300
社区成员




create proc test
@errorcode int output
as
--if an error occurs then
set @errorcode=@@error
go
declare @errorcode int
exec test @errorcode output
select @errorcode
drop proc test
--加个取组号程序,这样就user account一个参数了
declare @groupid int
begin transaction
select top 1 @groupid=groupid from a with (xlock) order by groupid --加锁防止冲突
if @@error<>0
begin
rollback
raiserror(16,1,'并发错误')
end
insert into b select 'user account',* from a where groupid=@groupid
if @@error<>0
begin
rollback
raiserror(16,1,'并发错误')
end
delete a where groupid=@groupid
if @@error<>0
begin
rollback
raiserror(16,1,'并发错误')
end
commit transaction