Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Fehler bei mehrdeutigem Spaltennamen

Denn ARTIFACTTYPE kann entweder auf A.ARTIFACTTYPE verweisen oder B.ARTIFACTTYPE und der Server muss wissen, welches Sie wollen, ändern Sie es einfach in A.ARTIFACTTYPE und Sie sollten in diesem Fall in Ordnung sein.

Zur Verdeutlichung müssen Sie das Alias-Präfix immer dann angeben, wenn der Spaltenname mehrdeutig ist. Es ist keine schlechte Praxis, immer Alias-Präfixe zu verwenden, da es deutlich macht, welche Spalten aus welchen Tabellen stammen, wenn Sie die Abfrage lesen, und Probleme wie dieses beseitigt.

Man könnte sich fragen, warum Sie unterscheiden müssen, welche von zwei Spalten Sie wollen, wenn sich beide auf dieselbe Spalte in derselben Tabelle beziehen. Die Antwort lautet:Wenn Sie eine Tabelle mit sich selbst verknüpfen, können die Werte von A.column und B.column abhängig von den Join-Kriterien unterschiedlich sein (wie dies bei einem Outer Join der Fall sein kann, bei dem Werte in einer der Spalten sein können null).