社区
MS-SQL Server
帖子详情
关于事务的问题
laughsmile
2006-01-22 12:11:03
现在有2部分sql.第一部分sql是一系列update,第2部分sql是insert ...select...
第2部分的sql的select结果依赖于第一部分sql,也就是第一部分sql提交之后,然后执行第2部分sql才有意义.
但是问题是:现在要求第2部分sql如果出错,所有sql都要回滚,请问如何解决.
...全文
148
5
打赏
收藏
关于事务的问题
现在有2部分sql.第一部分sql是一系列update,第2部分sql是insert ...select... 第2部分的sql的select结果依赖于第一部分sql,也就是第一部分sql提交之后,然后执行第2部分sql才有意义. 但是问题是:现在要求第2部分sql如果出错,所有sql都要回滚,请问如何解决.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
laughsmile
2006-01-22
打赏
举报
回复
我试试看,谢谢啦:)
OracleRoob
2006-01-22
打赏
举报
回复
--那就用嵌套事务
create table t1 (a int primary key)
go
set xact_abort on
go
begin tran
begin tran
insert into t1 values (1)
commit tran --提交第一部分SQL语句
select * from t1
--表中有数据
insert into t1 values (1) --主键冲突,整个事务中所有语句操作回滚,包括第一部分SQL语句的更新操作
commit tran
go
select * from t1
--结果表中没有记录
drop table t1
go
laughsmile
2006-01-22
打赏
举报
回复
TO wangtiecheng(cappuccino):
不好意思,可能我没有说清楚,你可能没有明白我的意思.
第一部分sql提交之后,然后执行第2部分sql才有意义.
如果第一部分sql与第2部分sql一起提交是没有意义的.但是我又想达到回滚的效果.
OracleRoob
2006-01-22
打赏
举报
回复
--在第一个例子中产生错误,但其它语句均成功执行且事务成功提交。
create table t1 (a int primary key)
go
set xact_abort off
go
begin tran
insert into t1 values (1)
insert into t1 values (1) --主键冲突,当前语句追加失败
commit tran
go
select * from t1
--结果表中有一行记录
drop table t1
go
--在第二个例子中,set xact_abort 设置为 on。这导致语句错误使批处理终止,并使事务回滚。
create table t1 (a int primary key)
go
set xact_abort on
go
begin tran
insert into t1 values (1)
insert into t1 values (1) --主键冲突,整个事务中所有语句操作回滚
commit tran
go
select * from t1
--结果表中没有记录
drop table t1
go
OracleRoob
2006-01-22
打赏
举报
回复
--当 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行时错误,整个事务将终止并回滚。
set xact_abort on
--开始事务
begin tran
--第一部分SQL
--第二部分SQL
--提交事务
commit tran
return 0
关于Spring
事务
管理之默认
事务
间调用
问题
这里用到的
事务
配置为注解方式, 目前我们项目开发过程中使用配置文件方式, 一般为以下方式。这种方式的
事务
配置, 更容易引起
问题
。没有接受到里面抛出的异常, 方法继续执行, 执行结束后,
事务
提交。, 默认
事务
再被调用时, 如外层方法无
事务
, 自身会新启
事务
。由
事务
的传播行为我们知道, 如果将方法配置为默认
事务
。的时候检测到
事务
被标记为回滚, 与预期不符, 也就是。, 作为一个独立
事务
来执行. 由此存在一个
问题
。出现异常后它将
事务
标记为回滚。的
事务
回滚依托在异常之上, 当。, 之后再被调用的方法。
并发
事务
问题
与
事务
隔离级别
文章目录1、什么是
事务
2、并发
事务
所遇到的
问题
2.1、脏读2.2、不可重复读2.3、幻读3、
事务
隔离级别 该技术博客根据B站黑马MySQL教程做的笔记总结 希望能为大家带来帮助!感谢你的三连 1、什么是
事务
学习并发
事务
之前,需要理解什么是
事务
:
事务
:一组操作的集合,它是一个不可分割的工作单位,
事务
会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 例如转账案例,A账户给B账户转账1000元,那么A账户就会失去1000元,B账户增加1000元,那么这两
关于
事务
操作超时
问题
关于
事务
操作超时
问题
事例一:开启
事务
查询了表一,在调用一个方法这个方法里面也是查询这个表格代码会报错(执行超时已过期。完成操作之前已超时或服务器未响应。) 事例二:开启
事务
多次查询了表一,查询到第二遍就报错(执行超时已过期xxxxx) 原因这是由于在开启
事务
后,对"表一"进行查询时,会对"表一"添加锁,直到
事务
提交或报错回滚后,这个锁才能解除(锁的概念太多就不介绍了有性趣的朋友可以自己去看看) 引申:
事务
支持多用户同时操作不?上面我们讲了用户一用
事务
查询就会进行锁定,那么多用户同时查询呢?这里我...
关于方法A调用方法B的
事务
控制
问题
关于方法A调用方法B的
事务
控制
问题
实测,不管是上图还是下图,得到的结论都是一致的,那就是: 前提是同一个类里的方法调用,controller层类调用service的B方法,
事务
自然会生效的 a.异常发生后,被调用方法(B)是否添加
事务
控制,对于
事务
的回滚是否并不产生影响 b.调用B的方法,添加了
事务
控制才能实现异常
事务
回滚,不管被调用方法B是否有
事务
控制 c.不管嵌套调用了多少个方法,只要最顶...
mysql大
事务
带来的
问题
大
事务
带来的
问题
一、什么是大
事务
定义:运行时间比较长,操作的数据比较多的
事务
。 大
事务
风险:1、锁定太多的数据,造成大量的阻塞和锁超时,回滚所需要的时间比较长。2、执行时间长,容易造成主从延迟。 如何处理大
事务
:1、避免一次处理太多大数据。2、移出不必要在
事务
中的select操作 二、什么是
事务
1.原子性:一个......
MS-SQL Server
34,874
社区成员
254,640
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章