社区
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都要回滚,请问如何解决.
...全文
167
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
MySQL
事务
演示以及解决并发
事务
问题
本文围绕MySQL
事务
展开,先通过转账案例演示
事务
,介绍了
事务
四大特性(ACID),还阐述了并发
事务
的脏读、不可重复读、幻读
问题
,以及MySQL提供的读未提交、读已提交、可重复读、串行化四种隔离级别来解决这些
问题
,并分别演示了各
问题
的解决方案。
MySQL
事务
问题
本文详细介绍了MySQL
事务
的概念、特性,包括原子性、一致性、隔离性和持久性,并通过实例演示了
事务
的开启、回滚和提交。此外,还探讨了
事务
的并发
问题
,如脏读、不可重复读和幻读,以及为解决这些
问题
的四种隔离级别。最后,讲解了如何设置和查看
事务
的隔离级别,强调了InnoDB存储引擎对
事务
的支持。
事务
以及
事务
并发产生的
问题
本文详细介绍了数据库
事务
的概念、特性以及并发操作可能引发的
问题
,包括脏读、不可重复读、幻读和脏写。同时,文章阐述了
事务
的四种隔离级别,并通过实例演示了不同隔离级别下
事务
并发
问题
的解决情况。
第31讲:MySQL
事务
的并发
问题
以及
事务
的隔离级别
本文详细探讨了MySQL中
事务
并发时遇到的脏读、不可重复读和幻读
问题
,以及如何通过设置
事务
的不同隔离级别来解决这些
问题
。通过模拟并发
事务
,展示了在read committed、repeatable read和serializable隔离级别下如何避免这些并发
问题
。
mysql 学习11
事务
,
事务
简介,
事务
操作,
事务
四大特性,并发
事务
问题
,
事务
隔离级别
本文围绕MySQL
事务
展开,介绍了
事务
操作,如转账示例中多SQL语句执行可能出现的
问题
;阐述了
事务
四大特性;分析了并发
事务
问题
,包括脏读、不可重复读等;还指出可通过设置
事务
隔离级别解决并发
事务
问题
。
MS-SQL Server
34,875
社区成员
254,639
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章