赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 2456|回复: 3

[ABAP问题] 关于对数据库表进行DML操作

[复制链接]
发表于 2011-3-4 22:15:22 | 显示全部楼层 |阅读模式
大家好!
在对数据库表进行维护的时候,通过update、insert、delete语句实现,如下面语句:
第一种写法:
update tab1 from wa1.
update tab2 from wa2.
if sy-subrc <> 0.
   rollback work.
else.
  commit work and wait.
endif.

第二种写法:
update tab1 from wa1.
if sy-subrc <> 0.
   rollback work.
   return.
endif.

update tab2 from wa2.
if sy-subrc <> 0.
   rollback work.
   return.
endif.
commit work and wait.

想问的是,是每执行一条dml语句就需要做一个sy-subrc的判断,还是连续多条dml语句可以共用一个sy-subrc判断?

谢谢。




上一篇:sap是什么意思 sap学习要多久
下一篇:初学者问一个很弱智的问题,关于数据表读取的。
本楼点评(0) 收起
发表于 2011-3-5 09:57:17 | 显示全部楼层
第一种写法:
sy-subrc 是指update tab2 from wa2.的结果。

第二种是各自执行的结果
本楼点评(0) 收起
发表于 2011-3-5 21:05:27 | 显示全部楼层
补充下:
无论是哪种写法,即使update tab1 sy-subrc = 0, update tab2 sy-subrc <> 0
如果最后rollback work, 程序会把tab1 和 tab2的操作都rollback
除非在update tab1后commit work, 这样的情况下,rollback操作不会影响tab1的update操作
本楼点评(0) 收起
发表于 2013-6-24 22:51:29 | 显示全部楼层
学习
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-5-10 13:58 , Processed in 0.174998 second(s), 42 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表