点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我有一个仅包含关键字段的Z表。
我正在尝试更新表的记录。
运行代码检查器时出现错误
表Z仅包含关键字段。 在这种情况下," UPDATE
我尝试添加ENQUEUE_E_TABLE,但错误仍然存在。
选择* 从ztable 其中ernam eq @ ls_record-previous_username 到表@data(lt_ztable)中。 在lt_ztable中循环到data(ls_ztable)中。 ls_ztable-ernam = ls_record-new_username。 从ls_table更新ztable。 提交工作。 结束循环。
更新:
使用UPDATE目标FROM源语法是不可能的。
您应该删除旧条目并插入新条目,或者使用此形式的语句支持修改键值(但要牢记限制)。
Sandra Rossi 感谢您的修改。
更新意味着您想更改该行中的某些内容
如果您 表中只有键,您无法更改:
->您将创建一个新键
->您将创建重复项(如果该行已存在)
< p> so插入..接受重复...
对不起,每个人都可以更改数据库表记录的关键字段。
< p>此限制仅适用于表的所有列都属于主键的UPDATE表FROM结构。您仍然可以更新一个或多个记录的键字段,但不适用于UPDATE 表FROM结构。 从A更改为B的示例:
PS:也许混乱来自内部表中的限制 防止键字段被更改。
对于我来说,更新一个仅包含键字段的表的感觉真奇怪……。
您好Jonathan Blavatsky
清楚地理解表中键字段的概念,在任何表中,KEY FIELDS都可以
在您的情况下,因为您声称所有字段都是关键字段,所以您永远无法更新现有条目。 更新仅对NON_KEY字段有效。 因此,针对您的情况的唯一解决方案是只删除所有必需的条目并将新条目插入表中。
另一种解决方案是使用MODIFY语句,然后删除所有非必需项
需要注意!
第二次测试(我喜欢测试:))
A Test_1
A Test_2
A Test_3
B Test_3
代码:
更新ZTEST_001设置field_a ='B',其中Field_a ='A'。 p>
结果:sy-subrc = 4
所以可能很危险
一周热门 更多>