Sqlserver 事务处理模板

USE StuDB
GO
/****** Object: StoredProcedure [dbo].[proc_live_send_answer_v4] Script Date: 06/20/2017 14:44:26 ******
/
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: YJ -- Create date: 2017-05-11 -- Description: 事务 -- ============================================= ALTER PROCEDURE [dbo].[proc_name] @answer_id varchar(50), @answer varchar(10), @uid bigint, @roomid int=0 out, @count int=0 out AS begin set nocount on; if(charindex(':',@answer_id,1)=0) return; set @answer=replace(@answer,',','|'); declare @Activity_No int; declare @quest_order tinyint; set @Activity_No = substring(@answer_id,1,charindex(':',@answer_id,1)-1); set @quest_order=substring(@answer_id,charindex(':',@answer_id,1)+1,len(@answer_id)); --尽量缩短事务占用时间 begin try begin tran insert......a update......b delete......c commit tran select 1 as res,'' as remark end try begin catch if (@@trancount > 0) rollback; declare @ErrMESSAGE nvarchar(1024) = error_message(), @ERRSEVERITY int = error_severity(), @ERRSTATE int = error_state(); raiserror(@ErrMESSAGE,@ERRSEVERITY,@ERRSTATE);--抛出错误 select 0 as res,'提交失败' as remark end catch end

事务注意事项:事务里不能包含事务,也就是说当存储过程调用存储过程的时候,外层存储过程有事务时,被调用的存储过程不能写事务,不然事务回滚不了。

转载于:https://www.cnblogs.com/YoungHeart/p/10475482.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值