将数据插入内部表中的特定字段

时间:2018-02-16 13:13:49

标签: sap abap

我有一张表让我们称之为" dbtab"。 我的内部表的名称是" it_tab"。

我在" new_number"。

中有一个数字

我将该号码插入空白字段" laufnr"在我的dbtab中使用:

update dbtab set laufnr = new_number where laufnr = ''.

这个工作正常,但是我的it_tab中没有变化。

如何从dbtab更新内部表?

或者如何将值插入内部表格中的特定字段?

4 个答案:

答案 0 :(得分:2)

您有两种选择:

  1. 使用以下内容更新数据库表时更新内部表:LOOP AT it_tab ASSIGING <tab> WHERE laufnr = ''. <tab>-laufnr = new_number. ENDLOOP.
  2. 在对数据库进行更新后,将数据库表中的数据重新读入内部表。

答案 1 :(得分:0)

您可以像数据库表一样更新您的itab ...唯一的区别是,您不能使用“更新”...而是使用“修改”。

modify it_tab set laufnr = new_number where laufnr = '' .

另一个选项是简单地重新加载dbtab

CLEAR it_tab.
SELECT * INTO it_tab FROM dbtab WHERE .... .

答案 2 :(得分:0)

有两种不同的东西,它们没有联系。 内部表是特定时刻的数据集的表示。 数据库表是最新的数据。 您可以设置更改其中任何一个,但不能同时使用单个指令更改两者。 我会建议: - 更新您的数据库 - 刷新内存中的副本 提示:如果你想要这么做&#34;艰难的方式&#34;,只需创建一个对象,并用某种UPDATE方法做两件事。

答案 3 :(得分:0)

嗨试试这个希望它有帮助

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.