-1

我有一张桌子,我们称之为“dbtab”。我的内部表的名称是“it_tab”。

我在“new_number”中有一个号码。

我使用以下方法将该数字插入到我的 dbtab 中的空字段“laufnr”中:

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

这工作得很好,但更改不在我的 it_tab 中。

如何从我的 dbtab 更新我的内部表?

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

4

4 回答 4

2

你有两个选择:

  1. 当您使用以下内容更新数据库表时更新您的内部表:LOOP AT it_tab ASSIGING <tab> WHERE laufnr = ''. <tab>-laufnr = new_number. ENDLOOP.
  2. 对数据库进行更新后,将数据库表中的数据重新读取到内部表中。
于 2018-02-16T15:25:02.830 回答
0

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

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

另一种选择是简单地重新加载您的 dbtab

CLEAR it_tab.
SELECT * INTO it_tab FROM dbtab WHERE .... .
于 2018-02-17T21:40:13.370 回答
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.
于 2018-02-26T06:12:01.313 回答
0

有两种不同的东西,它们没有联系。内部表是数据集在特定时刻的表示。数据库表是最新的数据本身。您可以设法更改其中任何一个,但不能通过一条指令同时更改两者。我会推荐: - 更新你的数据库 - 刷新内存中的副本 提示:如果你想用“艰难的方式”来做,只需创建一个对象,然后在某种 UPDATE 方法中做这两件事。

于 2018-02-22T08:22:42.490 回答