Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Erro de nome de coluna ambíguo


Porque ARTIFACTTYPE pode se referir a A.ARTIFACTTYPE ou B.ARTIFACTTYPE e o servidor precisa saber qual você quer, basta alterar para A.ARTIFACTTYPE e você deve estar bem neste caso.

Para esclarecer, você precisa especificar o prefixo do alias sempre que o nome da coluna for ambíguo. Não é uma prática ruim usar sempre prefixos de alias, pois deixa claro quais colunas estão vindo de quais tabelas quando você lê a consulta e elimina problemas como este.

Alguém pode se perguntar por que você precisa distinguir qual das duas colunas você deseja quando ambas se referem à mesma coluna na mesma tabela. A resposta é que quando você une uma tabela a ela mesma, os valores de A.column e B.column podem ser diferentes dependendo dos critérios de junção (como pode ser o caso de uma junção externa onde os valores em uma das colunas podem ser nulo).