【SQLSERVER】事务相关存储过程Demo

--事务相关存储过程Demo

-------------Test Table Create
create table testbzm(
id int primary key,
val varchar(10)
)


--------------Procedure about Transaction
--simple Test
create proc instestbzm  -- create procedure=create proc
( @id1 int,
 @val1 varchar(10),
 @id2 int,
 @val2 varchar(10)
)
as 
BEGIN
insert into testbzm(id ,val) values(@id1,@val1)
insert into testbzm(id ,val) values(@id2,@val2)
END

exec instestbzm 2,'hHEHE',1,'WAWA'
exec instestbzm 3,'hHEHE',1,'WAWA'
exec instestbzm 4,'hHEHE',1,'WAWA'
select * from testbzm
/*
1   WAWA
2   hHEHE
3   hHEHE
4   hHEHE
*/
--整个proc非一个事务,一个INSERT是一个隐式事务
truncate table testbzm
drop proc instestbzm



--需求完整实现
create proc instestbzm  -- create procedure=create proc
( @id1 int,
 @val1 varchar(10),
 @id2 int,
 @val2 varchar(10)
)
as 
BEGIN
BEGIN TRY  
    SET NOCOUNT ON; --Trans 优化
    SET TRANSACTION ISOLATION LEVEL read uncommitted;--允许脏读
BEGIN TRAN  
insert into testbzm(id ,val) values(@id1,@val1)
insert into testbzm(id ,val) values(@id2,@val2)
COMMIT TRAN  
PRINT '事务提交'  
END TRY  
BEGIN CATCH  
ROLLBACK;  
PRINT '事务回滚'; 
END CATCH  
END


exec instestbzm 2,'hHEHE',1,'WAWA'
exec instestbzm 3,'hHEHE',1,'WAWA'
exec instestbzm 4,'hHEHE',1,'WAWA'
select * from testbzm
/*
1   WAWA
2   hHEHE
*/


--Clear
drop table testbzm
drop proc instestbzm



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值