SQL Server 事务处理 回滚事务
--创建表:
GO
CREATE TABLE [dbo].[tb1](
[Id] [int] NOT NULL,
[c1] [nvarchar](50) NULL,
[c2] [datetime] NULL,
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] )
ON [PRIMARY]
GO
--解决方案(一)
declare @iErrorCount int
set @iErrorCount = 0
begin tran Tran_2015_09_30
insert into tb1(Id, c1) values(1,'1')
set @iErrorCount=@iErrorCount+@@error
insert into tb1(Id, c1) values(2,'2')
set @iErrorCount=@iErrorCount+@@error
insert into tb1(Id, c1) values('xxxx3','3')
set @iErrorCount=@iErrorCount+@@error
insert into tb1(Id, c1) values(4,'4')
set @iErrorCount=@iErrorCount+@@error
insert into tb1(Id, c1) values(5,'5')
set @iErrorCount=@iErrorCount+@@error
if @iErrorCount=0
begin
COMMIT TRAN Tran_2015_09_30 --执行事务
end
else
begin
ROLLBACK TRAN Tran_2015_09_30 --回滚事务
end
GO
--解决方案(二)
begin try
begin tran Tran_2015_09_30
insert into tb1(Id, c1) values(1,'1')
insert into tb1(Id, c1) values(2,'2')
insert into tb1(Id, c1) values('xxxx3','3')
insert into tb1(Id, c1) values(4,'4')
insert into tb1(Id, c1) values(5,'5')
COMMIT TRAN Tran_2015_09_30
end try
begin catch
raiserror 50005N'出错了'
ROLLBACK TRAN Tran_2015_09_30 --回滚事务
end catch
GO
--解决方案(三)
--set XACT_ABORT ON ---如果不设置该项为ON,在sql中默认为OFF,那么只只回滚产生错误的 Transact-SQL 语句;设为ON,回滚整个事务
SET XACT_ABORT ON --语句产生运行时错误,则整个事务将终止并回滚。
Begin Tran
INSERT INTO tb1(Id, c1) VALUES(1,'1')
INSERT INTO tb1(Id, c1) VALUES('XX2','2') --此句产生错误时,就会回滚整个事务
Commit Tran
GO
begin tran t1 ---启动一个事务
update [water].[dbo].[ErrorInf]
set ErrorMessage='test'
where ID=6
insert into [water].[dbo].[ErrorInf]([ID],ErrorMessage,[Description])
Values(1,'test1','test1')
commit tran t1 ---提交事务
--//参考:
1. EmanLee, Eman Lee's Space (blog, website)
SQL Server 事务处理 回滚事务的更多相关文章
- SQL SERVER事务处理
SQL SERVER事务处理 一.事务定义: 事务是单个的工作单元.如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分. 如果事务遇到错误且必须取消或回滚,则所有 ...
- sql server 事务处理
事物处理 事务是SQL Server中的单个逻辑单元,一个事务内的所有SQL语句作为一个整体执行,要么全部执行,要么都不执行. 事务有4个属性,称为ACID(原子性.一致性.隔离性和持久性) ...
- Oracle与SQL Server事务处理的比较
事务处理是所有大型数据库产品的一个关键问题,各数据库厂商都在这个方面花费了很大精力,不同的事务处理方式会导致数据库性能和功能上的巨大差异.事务处理也是数据库管理员与数据库应用程序开发人员必须深刻理解的 ...
- c# + Sql server 事务处理
事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便 ...
- sql server存储过程回滚事务
SET NOCOUNT ON这个很常用 作用:阻止在结果集中返回显示受T-SQL语句或则usp影响的行计数信息. 当SET ONCOUNT ON时候,不返回计数,当SET NOCOUNT OFF时候, ...
- SQL SERVER 数据库实用SQL语句
--查看指定表的外键约束 select * from sysobjects where parent_obj in( select id from sysobjects where name='表名' ...
- SQL Server 2000中查询表名,列名及字段类型
经常碰到一些忘记表名称的情况,此时只记得个大概,此时可通过查询系统表Sysobjects找到所要的表名,如要查找包含用户的表名,可通过以下SQL语句实现, Select * From sysobjec ...
- TransactionScope事务处理方法介绍及.NET Core中的注意事项 SQL Server数据库漏洞评估了解一下 预热ASP.NET MVC 的VIEW [AUTOMAPPER]反射自动注册AUTOMAPPER PROFILE
TransactionScope事务处理方法介绍及.NET Core中的注意事项 作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10170712.ht ...
- SQL点滴9—SQL Server中的事务处理以及SSIS中的内建事务
原文:SQL点滴9-SQL Server中的事务处理以及SSIS中的内建事务 我们可以把SSIS中的整个package包含在一个事务中,但是如果在package的执行过程中有一个表需要锁定应该怎么处理 ...
随机推荐
- C#创建windows服务搭配定时器Timer使用实例(用代码做,截图版)
功能说明:C#创建一个windows服务,服务启动时D:\mcWindowsService.txt写入数据,服务运行期间每隔两秒写入当前时间. 原理这些就不说了,三语两语说不清楚,直接贴一个实例 ...
- 局域网两台笔记本如何使用svn
前几天我要和朋友一起开发一个网站,但是都是两台笔记本,连局域网搞的很麻烦,后来就用了git,今天突然想到要用svn,就在网上找了这个办法,结果一试便可以了,很开心 很感谢楼主,下面是我做的步骤绝对给力 ...
- 黑客破译android开发代码真就那么简单?
很多程序员辛辛苦苦开发出的android开发代码,很容易就被黑客翻译了. Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了 ...
- 【JavaScript】Javascript中的函数声明和函数表达式
Javascript有很多有趣的用法,在Google Code Search里能找到不少,举一个例子: <script> ~function() { alert("hello, ...
- iOS开发——网络实用技术OC篇&网络爬虫-使用java语言抓取网络数据
网络爬虫-使用java语言抓取网络数据 前提:熟悉java语法(能看懂就行) 准备阶段:从网页中获取html代码 实战阶段:将对应的html代码使用java语言解析出来,最后保存到plist文件 上一 ...
- hadoop集群扩展
一.先改动master机上的host文件,新增内容 10.61.6.180 slaves15 二.改动master机上hadoop安装文件夹下的conf中的slaves文件.新增内容 slaves15 ...
- 云服务器 ECS Linux 系统中常见的日志文件介绍
云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 cron ...
- Javascript禁止子元素继承父元素的事件
3种方法1.在父元素事件的function中加if(event.target==this){ }2.子元素事件function最后加event.stopPropgation():// 阻止事件冒泡3. ...
- Photoshop-制作图片圆角2种方法[转]
方案一: 使用选区和蒙版相结合,用图章制作圆角选区,删除多余部分 效果: 实现步骤: 一.如果是直接在已有的图片上面编辑则看下图,否则跳过此不 二.用矩形工具选择需要保留的图片内容 三.选 ...
- GAC(Global Assembly Cache)注册/卸载 dll
当发现有多个解决方案引用一个dll时,为了不重复引用所以将.net的一个dll注册到GAC中去. gacutil.exe. 记得使用管理员权限打开 开始菜单-Microsoft Visual Stud ...