Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Erreur de nom de colonne ambigu

Parce que ARTIFACTTYPE peut faire référence à A.ARTIFACTTYPE ou B.ARTIFACTTYPE et le serveur doit savoir lequel vous voulez, changez-le simplement en A.ARTIFACTTYPE et ça devrait aller dans ce cas.

Pour clarifier, vous devez spécifier le préfixe d'alias chaque fois que le nom de la colonne est ambigu. Ce n'est pas une mauvaise pratique de toujours utiliser des préfixes d'alias car cela indique clairement quelles colonnes proviennent de quelles tables lorsque vous lisez la requête et élimine les problèmes comme celui-ci.

On peut se demander pourquoi vous devez distinguer laquelle des deux colonnes vous voulez quand elles font toutes deux référence à la même colonne dans la même table. La réponse est que lorsque vous joignez une table à elle-même, les valeurs de A.column et B.column peuvent être différentes selon les critères de jointure (comme cela peut être le cas avec une jointure externe où les valeurs de l'une des colonnes peuvent être nul).