社区
MS-SQL Server
帖子详情
存储过程事务的问题!
tiky_6228769
2006-06-22 10:56:28
查了联机丛书上有这么一个选项XACT_ABORT,当然你设置为ON时,当某个操作错误,整个事务自动回滚
我一般没这样做,都是对每个DML进行@@ERROR检测,如果错误,ROLLBACK TRAN,我想请教的是什么情况下,用这个XACT_ABORT,因为我的做法也可以啊,是不是我哪里理解没透彻,请老鸟指教!!!!
...全文
169
5
打赏
收藏
存储过程事务的问题!
查了联机丛书上有这么一个选项XACT_ABORT,当然你设置为ON时,当某个操作错误,整个事务自动回滚 我一般没这样做,都是对每个DML进行@@ERROR检测,如果错误,ROLLBACK TRAN,我想请教的是什么情况下,用这个XACT_ABORT,因为我的做法也可以啊,是不是我哪里理解没透彻,请老鸟指教!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
OracleRoob
2006-06-25
打赏
举报
回复
如果需要保证数据处理的一致性,在事务开始前,都要加Set Xact_abort on。
SET XACT_ABORT ON
BEGIN TRAN
...
...
COMMIT TRAN
这样,事务过程中的任何一条SQL语句出错,都会回滚整个事务。
hellowork
2006-06-25
打赏
举报
回复
应该跟事务内处理的应用有关,有些错误可能对应用无关紧要,如插入值违反了外键约束,可以不让事务回滚而继续插入其它值.
tiky_6228769
2006-06-22
打赏
举报
回复
楼上的,我就是这么想的,希望听听更多老鸟的意见~
ElderBrother
2006-06-22
打赏
举报
回复
你的做法并没有错。
很多时候我们常用的都是每写一条sql语句紧接判断@@ERROR值,>0的话就回滚。
当然有时候我们不想每天语句都来判断@ERROR值,那么这时候可以用SET XACT_ABORT ON
.
一般写法:
SET XACT_ABORT ON
BEGIN TRAN
...
...
COMMIT TRAN
只要有错误发生都会自动会滚,与我们判断@@ERROR效果一样。不过感觉根据每条语句判断,发生错误时候可以清晰的把具体那一条sql语句错误返回客户端。所以如果不偷懒的话,还是判断@@ERROR较好。
liangpei2008
2006-06-22
打赏
举报
回复
使用@@ERROR对DML进行检测,可以得到出错信息,如果出错信息不重要,用XACT_ABORT就可以了
存储过程
中使用
事务
GPS平台、网站建设、...在
存储过程
中使用
事务
时非常重要的,使用数据可以保持数据的关联完整性,在Sql server
存储过程
中使用
事务
也很简单,用一个例子来说明它的语法格式: 代码 Create Procedure MyProcedure ( @Pa
mysql
存储过程
事务
处理
mysql
存储过程
事务
处理
存储过程
和
事务
事务
中可以有
存储过程
存储过程
中也可以有
事务
。
存储过程
一组为了完成特定功能的sql语句集,存储在数据库服务端,可以远程调用。 优点: 1、执行速度快 2、提高工作效率,实现简单,一般调用一两行代码就可以实现...
存储过程
嵌套
事务
处理
-- SQLServer
存储过程
嵌套
事务
处理 /*** 某个
存储过程
可能被单独调用,也可能由其他
存储过程
嵌套调用,则可能会发生嵌套
事务
的情形。 下面是一种解决
存储过程
嵌套调用的通用代码,在不能确定
存储过程
是否可能被其他...
MySQL
存储过程
事务
transaction
MySQL
存储过程
事务
transaction
MS-SQL Server
34,587
社区成员
254,588
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章