A03: Aktualisierungsabfrage: DB hat xxxxx Datensätze wegen Schüsselverletzungen nicht aktualisiert

04/07/2010 - 10:14 von Rüdiger Gram | Report spam
Hallo alle am Sonntagmorgen Unentwegten,

ich versuche gerade, ein neu geschaffenes Feld in einer DB mit Werten aus
einer anderen DB per Aktualisierungsabfrage zu füllen. Sowohl für das
Quell-Feld als auch für das Zielfeld sind keine Besonderheiten definiert
(keine Schlüsselfelder, nicht indiziert).

Dennoch erscheint die Fehlermeldung:
DB hat xxxxx Datensàtze wegen Schüsselverletzungen nicht aktualisiert

Zum besseren Verstàndnis hier der SQL-Code der Abfrage:

UPDATE Firmen LEFT JOIN [Firmen Bewerber] ON Firmen.DatensatzFirmen [Firmen Bewerber].DatensatzFirmenBewerber SET [Firmen Bewerber].Firmenland [Firmen].[Land]
WHERE ((([Firmen Bewerber].Firmenland) Is Null));

Weiß jemand Rat?

Gruß - Rüdiger
 

Lesen sie die antworten

#1 Peter Doering
05/07/2010 - 11:14 | Warnen spam
Hallo,

Rüdiger Gram wrote:

ich versuche gerade, ein neu geschaffenes Feld in einer DB mit Werten aus
einer anderen DB per Aktualisierungsabfrage zu füllen. Sowohl für das
Quell-Feld als auch für das Zielfeld sind keine Besonderheiten definiert
(keine Schlüsselfelder, nicht indiziert).

Dennoch erscheint die Fehlermeldung:
DB hat xxxxx Datensàtze wegen Schüsselverletzungen nicht aktualisiert

Zum besseren Verstàndnis hier der SQL-Code der Abfrage:

UPDATE Firmen LEFT JOIN [Firmen Bewerber] ON Firmen.DatensatzFirmen > [Firmen Bewerber].DatensatzFirmenBewerber SET [Firmen Bewerber].Firmenland > [Firmen].[Land]
WHERE ((([Firmen Bewerber].Firmenland) Is Null));



Das liegt am Aufbau der Abfrage. Wenn du bestehende DS aktualisieren
willst, muessen sie in beiden Tabellen vorhanden sein. LEFT JOIN mit
Pruefung auf Null gibt dir nur die zurueck, die in auf einer Seite
([Firmen]) existieren, analog zu www.donkarl.com?FAQ3.16

Aendere das Statement auf:

UPDATE Firmen AS F INNER JOIN [Firmen Bewerber] AS FB ON F.DatensatzFirmen
= FB.DatensatzFirmenBewerber
SET FB.Firmenland = F.Land

Falls du leere Inhalte ueberspringen willst, kannst du das ueber

WHERE F.Land Is Not Null

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen