Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Niejednoznaczny błąd nazwy kolumny

Ponieważ ARTIFACTTYPE może odwoływać się do A.ARTIFACTTYPE lub B.ARTIFACTTYPE a serwer musi wiedzieć, który z nich chcesz, po prostu zmień go na A.ARTIFACTTYPE i w tym przypadku powinieneś być w porządku.

Aby wyjaśnić, musisz określić prefiks aliasu za każdym razem, gdy nazwa kolumny jest niejednoznaczna. Nie jest złą praktyką, aby zawsze używać przedrostków aliasów, ponieważ podczas odczytywania zapytania wyraźnie widać, które kolumny pochodzą z jakich tabel, i eliminuje takie problemy.

Można się zastanawiać, dlaczego musisz rozróżniać, którą z dwóch kolumn chcesz, skoro obie odnoszą się do tej samej kolumny w tej samej tabeli. Odpowiedź jest taka, że ​​kiedy łączysz tabelę do siebie, wartości z A.column i B.column mogą się różnić w zależności od kryteriów złączenia (tak jak może to mieć miejsce w przypadku złączenia zewnętrznego, gdzie wartości w jednej z kolumn mogą być brak).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie, aby uzyskać nazwy wszystkich tabel w bazie danych SQL Server 2008

  2. Łączenie LIKE z IN w SQL

  3. Ograniczenie klucza obcego może powodować cykle lub wiele ścieżek kaskadowych?

  4. Jak mogę uruchomić tylko instrukcję, na której znajduje się mój kursor w SQL Server Management Studio?

  5. Wydajność SQL DELETE