我有一个表格,我们称其为" 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.