看我的间单明了
create proc insert_two_table
@a int,
@b int,
as
begin
begin transaction
insert into table1(a)values(@a)
if (@@error<>0)
rollback transaction
insert into table2(b)values(@b)
if (@@error<>0)
rollback transaction
begin transaction tran_insert
insert into table1(a)values(@a)
if @@error>0
begin
select @ErrNo=300000,@ErrMsg='table1插入失敗...'
goto Error
end
insert into table2(b)values(@b)
if @@error>0
begin
select @ErrNo=300000,@ErrMsg='table2插入失敗...'
goto Error
end
commint transaction Tran_insert
Error:
begin
raiserror @errno @errmsg
RollBack transaction Tran_insert
end
begin transaction tran_insert
insert into table1(a)values(@a)
insert into table2(b)values(@b)
if @@error>0
begin
select @ErrNo=300000,@ErrMsg='table2插入失敗...'
goto Error
end
commint transaction Tran_insert
Error:
begin
raiserror @errno @errmsg
RollBack transaction Tran_insert
end
create proc insert_two_table
@a int,
@b int,
as
set xact_abort on
begin tran
insert into table1(a)values(@a)
insert into table2(b)values(@b)
commit tran