Das aktualisieren von Tabellen
Veröffentlicht am 19.03.2004
Frage:
Ich habe eine Datenbank mit 2 Tabellen. In der Tabelle 1 sind ca. 20.000 Datensätze mit 8 Feldern. In der Tabelle 2 sind ca. 1.700.000 Datensätze mit 5 Feldern. Diese Tabellen sind aus einer Anwender-Software in Access importiert worden und haben keine Schlüsselfelder. Jeweils 2 Felder sind identisch und können als 1:n Beziehung verwendet werden. Die Aufgabe besteht darin, die Tabelle 2 mit zwei Feldern aus der Tabelle 1 zu aktualisieren. Die Lösung mit zwei verschachtelten „for i = 1 to Anz“ funktioniert, allerdings lässt hier die Verarbeitungsgeschwindigkeit zu wünschen übrig. Diese Methode benötigt doch ca. 340 Mio. Prüfschritte!
Können Sie hier eine Lösung anbieten, die eine akzeptable Abarbeitung bringt?
Antwort:
Die SQL-Anweisung UPDATE kann auch Daten aus unterschiedlichen Tabellen aktualisieren.
Das folgende Beispiel aktualisiert das Feld „Empfänger“ der Tabelle „Bestellungen“ mit dem Firmennamen der Tabelle „Kunden“
UPDATE Kunden
INNER JOIN Bestellungen ON Kunden.[Kunden-Code] = Bestellungen.[Kunden-Code]
SET Bestellungen.Empfänger = [Firma];
Das Beispiel basiert auf der Nordwind-Beispieldatenbank, die zum Lieferumfang von Access gehört.