我有一个表,我们称之为“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.
LOOP AT it_tab ASSIGING <tab> WHERE laufnr = ''. <tab>-laufnr = new_number. ENDLOOP.
在对数据库进行更新后,将数据库表中的数据重新读入内部表 .
嗨试试这希望它有所帮助
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.
您可以像数据库表一样更新您的itab ...唯一的区别是,您不能使用“更新”...而是使用“修改” .
modify it_tab set laufnr = new_number where laufnr = '' .
另一种选择是简单地重新加载dbtab
CLEAR it_tab. SELECT * INTO it_tab FROM dbtab WHERE .... .
有两个不同的东西,它们没有联系 . 内部表是特定时刻的数据集的表示 . 数据库表是最新的数据 . 您可以设置更改其中任何一个,但不能同时使用单个指令更改两者 . 我将建议: - 更新您的数据库 - 刷新内存中的副本提示:如果您想“艰难地”这样做,只需创建一个对象,并在某种UPDATE方法中执行这两项操作 .
4 回答
您有两种选择:
使用以下内容更新数据库表时更新内部表:
LOOP AT it_tab ASSIGING <tab> WHERE laufnr = ''. <tab>-laufnr = new_number. ENDLOOP.
在对数据库进行更新后,将数据库表中的数据重新读入内部表 .
嗨试试这希望它有所帮助
或有条件的
您可以像数据库表一样更新您的itab ...唯一的区别是,您不能使用“更新”...而是使用“修改” .
另一种选择是简单地重新加载dbtab
有两个不同的东西,它们没有联系 . 内部表是特定时刻的数据集的表示 . 数据库表是最新的数据 . 您可以设置更改其中任何一个,但不能同时使用单个指令更改两者 . 我将建议: - 更新您的数据库 - 刷新内存中的副本提示:如果您想“艰难地”这样做,只需创建一个对象,并在某种UPDATE方法中执行这两项操作 .