社区
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都要回滚,请问如何解决.
...全文
138
5
打赏
收藏
关于事务的问题
现在有2部分sql.第一部分sql是一系列update,第2部分sql是insert ...select... 第2部分的sql的select结果依赖于第一部分sql,也就是第一部分sql提交之后,然后执行第2部分sql才有意义. 但是问题是:现在要求第2部分sql如果出错,所有sql都要回滚,请问如何解决.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
事务
管理不起作用的几个原因
之前有个小测试发现
事务
不起作用,代理成功了,但
事务
就是不回滚。上网看到一片关于
事务
问题
的总汇,才发现原来是我的数据库中表的类型不对,更改后
事务
问题
就解决了,我也自己总结了一下 附:
事务
问题
总汇地址:http://jinnianshilongnian.iteye.com/blog/1850432 1、数据库表类型错误 首先确定使用的数据库表的类型,如果表的类型为MyISAM,则spin
并发
事务
问题
与
事务
隔离级别
文章目录1、什么是
事务
2、并发
事务
所遇到的
问题
2.1、脏读2.2、不可重复读2.3、幻读3、
事务
隔离级别 该技术博客根据B站黑马MySQL教程做的笔记总结 希望能为大家带来帮助!感谢你的三连 1、什么是
事务
学习并发
事务
之前,需要理解什么是
事务
:
事务
:一组操作的集合,它是一个不可分割的工作单位,
事务
会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 例如转账案例,A账户给B账户转账1000元,那么A账户就会失去1000元,B账户增加1000元,那么这两
详解mysql
事务
,
事务
并发安全
问题
的复现以及大
事务
的优化
详解mysql
事务
,
事务
并发安全
问题
的复现以及大
事务
的优化,
事务
的特性(ACID),原子性,一致性,隔离性,持久性;
事务
的并发
问题
,脏读,不可重复读,幻读,更新丢失;
事务
隔离级别,read uncommited(读未提交),read commited(读已提交), repeatable read(可重复读),serializable(序列化);以及脏读复现,不可重复读复现,幻读复现;MVCC多版本并发控制,快照读,当前读;lock in share mode是共享锁,for update是排他锁。
关于线程池与
事务
的注意
问题
关于线程池与
事务
的注意
问题
关于
事务
操作超时
问题
关于
事务
操作超时
问题
事例一:开启
事务
查询了表一,在调用一个方法这个方法里面也是查询这个表格代码会报错(执行超时已过期。完成操作之前已超时或服务器未响应。) 事例二:开启
事务
多次查询了表一,查询到第二遍就报错(执行超时已过期xxxxx) 原因这是由于在开启
事务
后,对"表一"进行查询时,会对"表一"添加锁,直到
事务
提交或报错回滚后,这个锁才能解除(锁的概念太多就不介绍了有性趣的朋友可以自己去看看) 引申:
事务
支持多用户同时操作不?上面我们讲了用户一用
事务
查询就会进行锁定,那么多用户同时查询呢?这里我...
MS-SQL Server
34,838
社区成员
254,632
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章