楼主: houbao408

请教更新数据表回滚的问题!

[复制链接]
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
11#
 楼主| 发表于 2012-7-27 08:15 | 只看该作者
trigger_lau 发表于 2012-7-27 00:03
不能回滚也好解决呀

现在用户的需求就是如果 有错误的话,本次提交的其它条记录也不要更新成功!

使用道具 举报

回复
论坛徽章:
15
ITPUB元老
日期:2005-04-13 09:47:24管理团队成员
日期:2013-06-05 17:37:00ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主6段
日期:2012-08-09 02:21:03ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36ITPUB年度最佳版主
日期:2011-04-08 18:37:09BLOG月度发帖之星
日期:2010-05-01 02:15:42ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10
12#
发表于 2012-7-27 08:33 | 只看该作者
houbao408 发表于 2012-7-27 08:15
现在用户的需求就是如果 有错误的话,本次提交的其它条记录也不要更新成功!

那就看看每一步能不能做逆操作了。

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
13#
 楼主| 发表于 2012-7-27 08:36 | 只看该作者
trigger_lau 发表于 2012-7-27 08:33
那就看看每一步能不能做逆操作了。

额...更新过了,再更新回去??

使用道具 举报

回复
论坛徽章:
3
生肖徽章2007版:鸡
日期:2008-12-17 12:54:522010新春纪念徽章
日期:2010-03-01 11:20:052012新春纪念徽章
日期:2012-01-04 11:54:26
14#
发表于 2012-7-27 09:19 | 只看该作者
这么写roolback会成功,除非roolback之前的哪个环节有commit。

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
15#
 楼主| 发表于 2012-7-27 09:25 | 只看该作者
kkmh 发表于 2012-7-27 09:19
这么写roolback会成功,除非roolback之前的哪个环节有commit。

你意思是说 不论是否更新成功,都加上commit,当更新错误的时候rollback,之前更新成功的会回滚??

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
16#
 楼主| 发表于 2012-7-27 09:25 | 只看该作者
kkmh 发表于 2012-7-27 09:19
这么写roolback会成功,除非roolback之前的哪个环节有commit。

可目前我这样写,rollback没啥效果啊!

使用道具 举报

回复
论坛徽章:
18
蜘蛛蛋
日期:2011-10-20 11:28:46双子座
日期:2015-08-31 10:57:42秀才
日期:2015-08-28 09:17:41白羊座
日期:2015-08-05 17:46:26马上有钱
日期:2014-12-29 09:17:57马上有钱
日期:2014-11-21 09:20:48马上有房
日期:2014-11-05 12:53:12马上有对象
日期:2014-02-18 16:44:082014年新春福章
日期:2014-02-18 16:44:08蛋疼蛋
日期:2013-07-05 08:52:50
17#
发表于 2012-7-27 09:27 | 只看该作者
  1. LOOP AT IT_DETAIL.
  2.    UPDATE ZPP060A SET ZTZLX = IT_DETAIL-ZTZLX
  3.    WHERE WERKS = IT_DETAIL-WERKS AND MATNR = IT_DETAIL-MATNR .
  4.     IF SY-SUBRC <> 0.
  5.         ET_RETURN-TYPE = 'E'.
  6.         CONCATENATE '更新失败,错误在' IT_DETAIL-MATNR '/' IT_DETAIL-ZTZLX '/' IT_DETAIL-ZTZMC INTO ET_RETURN-MESSAGE.
  7.         APPEND ET_RETURN.
  8. "       ROLLBACK WORK.     ''写在此处没有回滚的效果!
  9. g_rollbackwork = 'Y'."回滚标识
  10.         EXIT.
  11.      ENDIF.
  12.    CLEAR IT_DETAIL.
  13. ENDLOOP.
  14. if g_rollbackwork eq 'Y'."
  15.    ROLLBACK WORK.
  16. end if."没在系统测试,如果不可以,估计得再更新为原来的旧数据了
复制代码

使用道具 举报

回复
论坛徽章:
3
生肖徽章2007版:鸡
日期:2008-12-17 12:54:522010新春纪念徽章
日期:2010-03-01 11:20:052012新春纪念徽章
日期:2012-01-04 11:54:26
18#
发表于 2012-7-27 09:46 | 只看该作者
本帖最后由 kkmh 于 2012-7-27 09:47 编辑
houbao408 发表于 2012-7-27 09:25
可目前我这样写,rollback没啥效果啊!

不一定非要有commit work语句才会commit,可能在某个环节自动commit了。
方便贴上完整的代码吗?

使用道具 举报

回复
论坛徽章:
18
蜘蛛蛋
日期:2011-10-20 11:28:46双子座
日期:2015-08-31 10:57:42秀才
日期:2015-08-28 09:17:41白羊座
日期:2015-08-05 17:46:26马上有钱
日期:2014-12-29 09:17:57马上有钱
日期:2014-11-21 09:20:48马上有房
日期:2014-11-05 12:53:12马上有对象
日期:2014-02-18 16:44:082014年新春福章
日期:2014-02-18 16:44:08蛋疼蛋
日期:2013-07-05 08:52:50
19#
发表于 2012-7-27 09:47 | 只看该作者
houbao408 发表于 2012-7-27 09:25
你意思是说 不论是否更新成功,都加上commit,当更新错误的时候rollback,之前更新成功的会回滚??

一旦加上了commit,再怎么rollback也回不来了

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
20#
 楼主| 发表于 2012-7-27 09:52 | 只看该作者
elliott_love 发表于 2012-7-27 09:27

我测试下,不过估计你这个和我的差不多!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表