L'une des bases de données pour lesquelles je développe est mise à niveau vers SQL 2008 (à partir de SQL 2000).SQL Server 2008 Upgrade/compile - Alias de colonne et alias de table
Le conseiller de mise à niveau est en baisse un problème que je ne pense pas est un problème. J'espérais qu'il y ait de la documentation indiquant que c'est un problème connu pour que mon équipe DB le laisse passer.
L'erreur dit que dans SQL 2008, vous ne pouvez pas utiliser un alias de table et un alias de colonne ensemble. Il dit aussi que les sprocs qui les utilisent ne compileront pas.
est que de différents scénarios SQL sont à l'origine ceci:
select
case
when tblOneAlias.COLUMN_NAME is null then tblTwoAlias.COLUMN_NAME
else tblOneAlias.COLUMN_NAME
end as COLUMN_NAME
from tblOne tblOneAlias
join tblTwo tblTwoAlias
on tblOneAlias.JOIN_VALUE = tblTwoAlias.JOIN_VALUE
order by tblOneAlias.COLUMN_NAME, tblTwoAlias.COLUMN_NAME
select tblAlias.COLUMN_NAME as 'COLUMN_NAME'
from tblName tblAlias
order by tblAlias.COLUMN_NAME
select COLUMN_NAME = tblAlias.COLUMN_NAME
from tblName tblAlias
order by tblAlias.COLUMN_NAME
Dans chaque scénario un alias est créé ce match es le nom de la colonne réelle (pas habituellement une bonne idée, je suis d'accord).
Cependant, compilent très bien dans SQL Server 2008 (avec le niveau de compatibilité réglé sur 10). Je pense que le conseiller de mise à niveau est juste confus parce que l'alias est le même que le nom de colonne. Je suis d'accord qu'il y a un «code moins que souhaitable» ici. Mais je ne pense pas que cela doive être changé pour passer à SQL 2008.
Le moins de choses que nous pouvons changer avec cette mise à jour signifie qu'il y a moins de choses à regarder si quelque chose se brise quand nous allons en production.
Si quelqu'un connaît une documentation indiquant qu'il s'agit d'une limitation connue, veuillez me le faire savoir.
Aussi, si je me trompe et que ceux-ci ne sont pas autorisés dans SQL 2008 en quelque sorte (bien qu'ils compilent très bien) Je voudrais ensuite aussi le savoir.
... Merci
Mais ce ne sont pas vraiment des alias de colonnes, n'est-ce pas? Je suppose que je ne suis pas sûr parce qu'ils sont le même nom. Lequel est utilisé? – Vaccano
Oui, et je ne pense pas que UA le comprend. – ajdams