sql中的Tran和C#中的TransactionScope介绍
sql 中的Tran 俩种写法
第一种写法 try catch:
Begin TRYBegin Tran transactionDECLARE @ServiceOrderId INT SET @ServiceOrderId=73342DECLARE @ErrorCount INT SET @ErrorCount = 0--调整积分通订单状态 支付完成UPDATE dbo.ServiceOrderNewSET OrderStatus = 2,UpdateDate = GETDATE()WHERE ServiceOrderID = @ServiceOrderId--调整订单详细UPDATE dbo.ServiceOrderNewDetailSET DetailStatus = 2WHERE ServiceOrderID = @ServiceOrderId Commit Tran transactionEND TRYBEGIN CATCHROLLBACK Tran transaction END CATCH
第二种写法 用错误积累:
DECLARE @ServiceOrderId INT SET @ServiceOrderId=73342BEGIN TRAN ADECLARE @ErrorCount INT SET @ErrorCount = 0--调整积分通订单状态 支付完成UPDATE dbo.ServiceOrderNewSET OrderStatus = 2,UpdateDate = GETDATE()WHERE ServiceOrderID = @ServiceOrderIdSET @ErrorCount=@ErrorCount+@@error--调整订单详细UPDATE dbo.ServiceOrderNewDetailSET DetailStatus = 2WHERE ServiceOrderID = @ServiceOrderIdSET @ErrorCount=@ErrorCount+@@error--付款状态UPDATE dbo.ScorePayApplySET ApplyStatus = 2WHERE ScorePayApplyID = (SELECT TOP 1 ScorePayApplyID FROM ServiceOrderNewDetail WHERE ServiceOrderID = @ServiceOrderId)SET @ErrorCount=@ErrorCount+@@errorSET @ErrorCount=@ErrorCount+@@errorIF @ErrorCount=0 BEGIN COMMIT TRAN AEND ELSE BEGIN ROLLBACK TRAN AEND
第二 TransactionScope用法
using (TransactionScope tran = new TransactionScope()){try{ServiceItemDataAccess.ServicesConfirmPayment(serviceOrderId, remark, serviceId);//提交事务tran.Complete();}catch (Exception ex){return ex.ToString();}finally{tran.Dispose();}}
TransactionScope 是一个轻量级的事物,在using中,若程序报错,则自动回滚。tran.Complete();是指程序成功,提交。 tran.Dispose(); 释放和销毁。
欢迎大家提出意见,尤其是在介绍时的意见,本人逻辑思维不是很严谨,所以导致要么叙述啰嗦,要么 说明不是很清楚
转载于:https://www.cnblogs.com/q101301/p/4646146.html
sql中的Tran和C#中的TransactionScope介绍相关推荐
- SQL Server 2014新功能 -- 内存中OLTP(In-Memory OLTP)
概述 内存中OLTP(项目"Hekaton")是一个全新的.完全集成到SQL Server的数据库引擎组件. 对OLTP工作负载访问中在内存中的数据进行了优化.内存中OLTP能够帮 ...
- 为了熟练掌握动态SQL你必须要知道Mybatis中的OGNL表达式
前言 OGNL是个什么东西?很多刚入门Java的同学会有点陌生.但是在Structs流行的时代OGNL可是必会的数据渲染技术.它全称Object Graph Navigation Language,作 ...
- SQL Server 2000 Service Pack 4 中所修复的 bug 的列表
有关在 SQL Server 2000 Service Pack 4 已修复的 bug 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 314128 FIX: 一 ...
- Java连接SQL2005及SQL Server JDBC Driver 2.0中sqljdbc.jar和sqljdbc4.jar的区别
第一.Java连接SQL2005 一.JAVA连接SQL的语句 JAVA连接SQL2000语句为: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver&q ...
- sql 解析字符串添加到临时表中 sql存储过程in 参数输入
sql 解析字符串添加到临时表中 sql存储过程in 参数输入 解决方法 把字符串解析 添加到 临时表中 SELECT * into #临时表 FROM dbo.Func_SplitOneCol ...
- sql 注射_只能在测试中注射吗?
sql 注射 本文是关于测试设计和可测试性的一些想法. 我们与我的儿子讨论了一些问题,他的儿子是Java的初级开发人员,目前在匈牙利的EPAM(我工作的同一家公司,但在另一家公司工作)受雇并学习. 本 ...
- oracle sql为null值,在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办
在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1.MSSQL: ISNULL() 语法 ISNULL ( check_expression , replacem ...
- ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接
ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接 原文:ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接 安装ArcSDE fo ...
- python解析sql文件_如何从Python中解析sql文件?
是否有任何方法可以从Python中执行.SQL文件中的某些SQL命令,而不是文件中的所有SQL命令?假设我有以下.sql文件:DROP TABLE IF EXISTS `tableA`; CREATE ...
最新文章
- 【微信小程序企业级开发教程】生命周期和app对象详解
- 【uni-app】小程序实现微信在线聊天(私聊/群聊)
- 云栖大会发布全球调度算法大赛,阿里又要搞什么黑科技?
- python元组是数组吗,Python基础(4)——数组元组
- java additem 错,Java错误:IllegalArgumentException:向容器添加窗口
- winfrom实现简单计算器V2版本
- highCharts文档与演示效果的使用 - 文档(应用型)解读
- 配置EditPlus
- 汲取Linux灵感 Pivotal开源大数据套件
- html垂直线6,HTML的垂直线
- Spring基于注解及SpringMVC
- Gather more plan statistics by gather_plan_statistics hint
- lunix入侵别人电脑_记录一次Linux的实战入侵过程
- java电商项目源码_电子商务系统+java+web+完整项目+包含源码和数据库Java实用源码(示例代码)...
- 从零开始学习Android开发-Android概览
- 【MATLAB】图像分割实验
- 数学中常见的曲面方程及形状
- 四部金融投资经典教材和30部必读的投资学经
- 湖南大学计算机专业推免生,湖南大学2018年招收推荐免试攻读研究生简章
- 苹果电脑双系统正确打开方式,虚拟机已经Out了
热门文章
- python可以干嘛知乎-一行Python代码能做什么?
- 2018python培训-参加python培训要多少钱?
- java好还是python好-学Python 好还是java 好?
- python代码大全表解释-【初学】Python异常代码含义对照表
- 用python画皮卡丘画法-python turtle绘图库绘制【皮卡丘】源码
- python画柱状图代码-Python绘制堆叠柱状图的实例
- python编程用什么电脑好-初学Python编程看哪些书比较好?
- 为什么python画不了图-解决python中使用plot画图,图不显示的问题
- python 编程入门-Python编程入门电子书教程,看这几个就够了
- python用途与前景-Python 就业方面的选择与应用分析