“Ambigu nom de la colonne” erreur sur un serveur en particulier

Cette requête simple jette le Ambiguë "nom de la colonne id de la tâche" erreur sur un db-serveur uniquement. C'est ridicule. Nous avons testé cela avec la même structure de base de données sur des serveurs différents et de différentes versions de SQL Server (2005 /2008), et c'est uniquement CE client serveur qui génère l'erreur. En fait, je suis frustré.

SELECT Tasks.TaskID
FROM Tasks
INNER JOIN TaskHelpers ON TaskHelpers.TaskID = Tasks.TaskID
ORDER BY TaskID

Oui, je sais que je peux mettre Tasks.TaskID dans le order by clause, mais pour certaines raisons je ne peux pas.

Je n'ai JAMAIS compris pourquoi vous devez spécifier manuellement une à une colonne jointe vous faites référence. Sûrement, si ils sont rejoints ils vont être la même de toute façon!? (peut-être un peu bizarre de l'indice de choses que je ne reçois pas je suppose)
Semble intéressant (+1). Maintenant, quelle est la question??
si le problème ne persistent sur d'autres serveurs, vous devriez peut-être vérifier les mises à jour sql, ou de certains paramètres peut-être?
regardez le mode de compatibilité, vous sont en cours d'exécution sur chacun de ces DBs, il y a documenté des différences dans la lorsque le nom de la table/alias est nécessaire ou non dans la clause ORDER BY. Voir ma réponse ci-dessous pour les liens et plus d'info.
Bécasse des bois: ils pourraient ne pas être les mêmes, par exemple lorsque vous utilisez une JOINTURE GAUCHE. maintenant, pourquoi la base de données n'a pas de figure lorsque la clause on a exactement le même nom, je suppose que la base de données a généraliser analyseur pour tous les types de jointures, il JOINTURE GAUCHE, JOINTURE INTERNE, etc

OriginalL'auteur Alex | 2010-05-07