存儲過程如下所示:create procedure sp_test
as
--刪除t1表中的數據,然後將t2表中的數據導入到t1表中delete from t1
insert into t1 select * from t2--刪除t3表中的數據,然後將t4表中的數據導入到t3表中
delete from t3
insert into t3 select * from t4請問如何使用事務去控制t1表的刪除插入操作?又如何去控制t3表的刪除和插入操作?可以建立兩個事務嗎?
我想在這個存儲過程中t3表的刪除插入失敗不讓它影響到t1表的成功操作,不知道大家有沒有聽懂我講的意思
as
--刪除t1表中的數據,然後將t2表中的數據導入到t1表中delete from t1
insert into t1 select * from t2--刪除t3表中的數據,然後將t4表中的數據導入到t3表中
delete from t3
insert into t3 select * from t4請問如何使用事務去控制t1表的刪除插入操作?又如何去控制t3表的刪除和插入操作?可以建立兩個事務嗎?
我想在這個存儲過程中t3表的刪除插入失敗不讓它影響到t1表的成功操作,不知道大家有沒有聽懂我講的意思
BEGIN transaction 事务名...if @@error=0
commit transaction 事务名
else
rollback transaction 事务名
create procedure sp_test
as
--刪除t1表中的數據,然後將t2表中的數據導入到t1表中begin transcaton test
delete from t1
insert into t1 select * from t2--刪除t3表中的數據,然後將t4表中的數據導入到t3表中
delete from t3
insert into t3 select * from t4
if @@error=0
commit transcation test
else
rollback transcation test
as
--刪除t1表中的數據,然後將t2表中的數據導入到t1表中begin
declare @err int
select @err=0
delete from t1
begin tran
set @err=@err+@@error
insert into t1 select * from t2
set @err=@err+@@error
--刪除t3表中的數據,然後將t4表中的數據導入到t3表中
delete from t3
set @err=@err+@@error
insert into t3 select * from t4
set @err=@err+@@error
if @err=0
commit tran
else
rollback tran
end