Ambiguous column name --> Aliasname Eingabe ?

marsi

Benutzer
Beiträge
15
Hallo liebe Experten,

ich habe hier 2 Tabellen vorliegen, wo die Spaltennamen gleich sind.
Hier muss von einer Tabelle die Daten auf die andere Tabelle übertragen werden, wenn die Nr. stimmig ist.

Hier die Abfrage

UPDATE Tabelle1
SET Tabelle1.Bezeichnung = Bezeichnung, Tabelle1.Bereich = Bereich
FROM Tabelle2 INNER JOIN Tabelle1
ON BV_Nr = Nr;


Tabelle 1 Struktur:
Nr, Bezeichnung, Bereich

Tabelle 2 Struktur:
BV_Nr, Bezeichnung, Bereich

Leider taucht dann diese Fehlermeldung auf --> Ambiguous column name .
Wie kann ich da einen Alias Namen für die Spaltennamen vergeben ?

Danke und Gruß, Marsi
 
Werbung:
SET Tabelle1.Bezeichnung = Bezeichnung, Tabelle1.Bereich = Bereich
Da gehört auch ein Alias vor Bezeichnung und Bereich. Nur weil Du eine Seite eindeutig machst, denkt sich keine DB Engine, ok, dann muss er auf der anderen Seite die andere Datenquelle meinen.

Es wird ja immer viel von KI geredet, aber so läuft es nicht.

P.S.: Es ist immer eine Überlegung wert, solche korrelierten Updates nicht nur über den Join laufen zu lassen, sondern auch die Ungleichheit der Werte, die das Update ausmachen. So spart man u.U. enorm viel Resourcen / Updates. Je nach Sachlage oder besser Datenlage und Triggerqualität, zerstört bzw. verfälscht man auch keine Änderungshistorie o.ä.
 
Zuletzt bearbeitet:
Das Problem ist, dass ich die 2. Bezeichnung nicht vollständig ausschreiben kann, da es über einen Linked Server läuft:
das würde dann so aussen
[DB-Linked-Server\Ort].Tabelle 2.Bezeichnung

Das erkennt er leider nicht.
 
Kannst Du nicht einen Tabellenalias verwenden?

Code:
UPDATE Tabelle1 
  SET  Tabelle1.Bezeichnung = t2.Bezeichnung, 
       Tabelle1.Bereich = t2.Bereich
FROM Tabelle2 as t2 
  JOIN Tabelle1 ON t2.BV_Nr = Tabelle1.Nr;
 
Werbung:
Und neben den expliziten Spaltennamen, also mit Tabellenname.Spaltenname würde ich auch den Join explizit ausschreiben und noch umdrehen, also
Code:
UPDATE Tabelle1 SET ... FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Nr = Tabelle2.BV_Nr
Das finde ich verständlicher und exakter. Aliase kann man grundsätzlich machen, muss man aber auch gar nicht wenn man immer mit vollwertigen Bezeichnungen arbeitet.
 
Zurück
Oben