Code: Alles auswählen.
loop at itab assigning <itab>.
update dtab set feld = @<itab>-feld where tabellenschlüssel = @<itab>-tabellenschlüssel.
endloop.
commit work.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
L0w-RiDer
In dem Fall legt man sich eine Testtabelle an, füllt diese mit Testdaten und schreibt ein Testprogramm, mit dem man das Verhalten prüfen kann.
Die Performance ist bei Deinem Ansatz mies, denn Datenbankzugriffe sind das Teuerste, was Du machen kannst, so dass Du bestrebt sein solltest, diese auf ein Minimum zu reduzieren. Es wäre besser, Du würdest Deine interne Tabelle wie die Datenbanktabelle definieren, alle Felder reinziehen, wunschgemäß verändern und dann nur einen einzigen UPDATE dbtab FROM TABLE itab ausführen. Die Hauptspeicherbelastung sollte nicht so groß sein, wenn Du Deine interne Tabelle im Anschluss gleich wieder freigibst (typischerweise weil Du sie lokal definiert hast und Deine Unterroutine nach dem UPDATE endet, notfalls aber auch, weil Du gleich im Anschluss einen FREE-Befehl absetzt).Ich habe bei meiner internen Tabelle allerdings nur den Schlüssel und das eine Feld, was ich verändern möchte mitgegeben ( aus Performancegründen etc.).
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
L0w-RiDer