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

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

Sqlserver 事务处理模板的更多相关文章

  1. {T4模板}C# Net MVC+SqlServer=T4模板生成实体类并操作数据(DbHelper+DBManage)

    1.ConnectionString,数据库链接 Web.config <configuration> <connectionStrings> <!-- 数据库 SQL ...

  2. sqlserver sp模板

    某公司内部的sp模板 create procedure [usp_my_procedure_name] as begin set nocount on; declare @trancount int; ...

  3. java连接SQLserver数据库模板代码

    package cn.mldn.lxh.dbc; import java.sql.Connection; import java.sql.DriverManager; public class Dat ...

  4. SqlServer存储过程模板

    create procedure [spname]([spvariable])asbegin begin transaction begin try  --具体sql过程  commit; end t ...

  5. java 之DelayQueue,TaskDelayed,handlerFactory,dataChange消息配置.收发等.java spring事务处理TransactionTemplate

    java 之DelayQueue,TaskDelayed,handlerFactory,dataChange消息配置.收发等.java spring事务处理TransactionTemplate等. ...

  6. SQLServer 学习相关资料整理【转】

    存储过程: SQL Server 存储过程 博客园上的一篇文章,讲解的非常详细,有测试代码,很实用. sqlserver存储过程中执行动态sql语句  The Curse and Blessings ...

  7. OLTP和OLAP浅析

    数据库设计的一个根基就是要弄清楚数据库的类型.   当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing在线事务处理,联机事务处理).联 ...

  8. Java工程师面试题

    1. J2EE 是什么?它包括哪些技术?解答:从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是 Java 技术不断适应和促进企业级应用过程中的产物.适用于企业级应用的 J2E ...

  9. SubSonic3.0使用存储过程查询时,不能使用output参数返回值的问题修改

    有个群友问SubSonic3.0执行存储过程时能不能使用output参数返回值,说测试过后获取不到返回值,早上有些时间所以就尝试修改了一下 首先在数据库中创建一个存储过程 CREATE PROCEDU ...

随机推荐

  1. Java线程的中断(Interruption)

    任务和线程的启动很容易.在大多数时候,我们都会让它们运行直到结束,或者让它们自行停止.然而,有时候我们希望提前结束任务或线程,或许是因为用户取消了操作,或者应用程序需要被快速关闭. 要使任务和线程能安 ...

  2. Web开发:需收藏的JavaScript常用技巧

    原文来自:https://www.baidu.com/home/news/data/newspage?nid=4242707244478773456&n_type=0&p_from=1 ...

  3. spring boot -Properties & configuration

    72. Properties & configuration72.1 Automatically expand properties at build timeRather than hard ...

  4. Docker for Windows 使用 VMware WorkStation

    一.前言 Docker for Windows 不同于 Docker Toolbox.Docker for Windows 对系统的要求至少为Windows 10专业版,因为它需要Hyper-V的支持 ...

  5. 简历HTML网页版

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  6. 26.app后端怎么架设推送服务

    推送服务已经是app的标配了.架设推送服务,除了可以使用第三方服务商外,也有大量的开源技术可以选择. 现在推送主要分两块,android推送和ios推送,在下面分别论述: 1.    Android推 ...

  7. Python中标准模块importlib详解

    1 模块简介 Python提供了importlib包作为标准库的一部分.目的就是提供Python中import语句的实现(以及__import__函数).另外,importlib允许程序员创建他们自定 ...

  8. C. Liebig's Barrels

    You have m = n·k wooden staves. The i-th stave has length ai. You have to assemble nbarrels consisti ...

  9. Dubbo中暴露服务的过程解析

    dubbo暴露服务有两种情况,一种是设置了延迟暴露(比如delay="5000"),另外一种是没有设置延迟暴露或者延迟设置为-1(delay="-1"): 设置 ...

  10. http.go

    )         }         if name != cfgName {             continue         }         return val.FieldByNa ...