Hi NG.
vorab: Es geht mir nicht um Delphi-Code, sondern rein um das
SQL-Statement basierend auf dem localSQL, das Borland in der
BDE verwendet.
Ich muss in unserer Kundentabelle tKund[nr, i, s, feld3, feld4, ...] die Felder i oder für einige 'nr' ändern. Das Feld tKund.nr ist unique. Zur Sicherheit habe ich eine Backuptabelle tKdns2 angelegt. Die Hilfstabelle tNeu[nr, i, s] enthält für einige 'nr' einen Wert i und/oder s, der in tKund geändert werden muss.
Als UPDATE-Statement habe ich folgendes versucht:
SQL-Code:
UPDATE tKund
SET i=
(SELECT tNeu.i
FROM tNeu
WHERE (tNeu.nr=tKund.nr)
AND (tNeu.i>0))
Tatsächlich ändert dies auch alle gewünschten Sätze richtig ab.
Aber es werden auch alle anderen Sätze geändert, die eigentlich nicht betroffen sein dürften. D.h. es werden auch alle Sätze in tKund geändert, für die gilt: tKund.nr<>tNeu.nr
Warum das denn auf einmal?
Gruß
Peter