sql server 在存储过程中使用事务

use db_sql2000
GO
--判断pro_pro16存储过程是否存在,如果存在将它删除
if exists(select name from sysobjects 
where name='pro_pro16'and type='p')
  drop proc pro_pro16  --删除存储过程
GO
create procedure pro_pro16
as
declare @truc int
select @truc=@@trancount
if @truc=0
begin tran p1
else
save tran pl
if (@truc=2)
begin
rollback tran pl
return 25
end
if(@truc=0)
commit tran pl
return 0
Go
DECLARE @ret int 
SET @ret=-1
EXEC @ret=pro_pro16
SELECT @ret
GO

注意:重点在于事务的数量等于0的时候,才开始事务或者提交事务。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值