DECLARE @TransactionName varchar(20)
set @TransactionName ='Transaction1'
--想实现插入小马哥,不插入孙大圣
begin transaction
insert into Student values('998888','小马哥','国际贸易','22') --就插入这一条
--注释这里就可以
---begin transaction @TransactionName
insert into Student values('998887','孙大圣','工商管理','99') --这条插入后,马上回滚
save transaction @TransactionName
rollback transaction @TransactionName
commit transaction
end
------解决方案--------------------
多个事务,建议每个事务都有独立的事务名,rollback/commit会针对特定的事务名
create procedure test_pro
as
begin
DECLARE @TransactionName varchar(20)
set @TransactionName ='Transaction1'
--想实现插入小马哥,不插入孙大圣
begin transaction
insert into Student values('998888','小马哥','国际贸易','22') --就插入这一条
begin transaction @TransactionName
insert into Student values('998887','孙大圣','工商管理','99') --这条插入后,马上回滚
save transaction @TransactionName
rollback transaction @TransactionName