我有一张桌子,我们称之为“dbtab”。我的内部表的名称是“it_tab”。
我在“new_number”中有一个号码。
我使用以下方法将该数字插入到我的 dbtab 中的空字段“laufnr”中:
update dbtab set laufnr = new_number where laufnr = ''.
这工作得很好,但更改不在我的 it_tab 中。
如何从我的 dbtab 更新我的内部表?
或者如何将值插入到内部表中的特定字段?
我有一张桌子,我们称之为“dbtab”。我的内部表的名称是“it_tab”。
我在“new_number”中有一个号码。
我使用以下方法将该数字插入到我的 dbtab 中的空字段“laufnr”中:
update dbtab set laufnr = new_number where laufnr = ''.
这工作得很好,但更改不在我的 it_tab 中。
如何从我的 dbtab 更新我的内部表?
或者如何将值插入到内部表中的特定字段?
你有两个选择:
LOOP AT it_tab ASSIGING <tab> WHERE laufnr = ''. <tab>-laufnr = new_number. ENDLOOP.
您可以像数据库表一样更新您的 itab .. 唯一的区别是,您不能使用“更新”...改用“修改”。
modify it_tab set laufnr = new_number where laufnr = '' .
另一种选择是简单地重新加载您的 dbtab
CLEAR it_tab.
SELECT * INTO it_tab FROM dbtab WHERE .... .
嗨试试这个希望它有帮助
LOOP AT it_tab.
it_tab-lufnr = new_number.
MODIFY it_tab TRASNPOTING laufnr WHERE laufnr = ''.
ENDLOOP.
或有条件
LOOP AT it_tab where laufnr = ''.
it_tab-lufnr = new_number.
MODIFY it_tab TRASNPOTING laufnr WHERE laufnr = ''.
ENDLOOP.
有两种不同的东西,它们没有联系。内部表是数据集在特定时刻的表示。数据库表是最新的数据本身。您可以设法更改其中任何一个,但不能通过一条指令同时更改两者。我会推荐: - 更新你的数据库 - 刷新内存中的副本 提示:如果你想用“艰难的方式”来做,只需创建一个对象,然后在某种 UPDATE 方法中做这两件事。