Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

UPGRADE ADVISOR

5 réponses
Avatar
Jean-Nicolas BERGER
Bonjour,
Dans le cadre d'une migration SQL2000 vers SQL2005, j'ai un souci avec la
liste des problèmes potentiels détectés par l'Upgrade Advisor.

Sur des syntaxes comme celle-ci :
SELECT A as x, B as y FROM MaTable t ORDER BY t.x
SQL 2000 va passer, SQL2005 va bloquer, mais l'Advisor va détecter le cas.

Par contre, sur des syntaxes comme celle-là :
SELECT A,B,A FROM MaTable ORDER BY A
SQL 2000 va passer, SQL2005 va bloquer, mais l'Advisor ne va y voir que du
feu !!! :-(

Quelqu'un pourrait-il éclairer ma lanterne sur ce que semble être des
lacunes de l'Advisor, avec éventuellement d'autres syntaxes obsolètes qu'il
ne détecterait pas ?

Merci d'avance pour votre aide.
JN

5 réponses

Avatar
SQLpro
Cette syntaxe est nullement obsolète...
SELECT A,B,A FROM MaTable ORDER BY A
Elle fait le produit cartésien des tables A, B et A, le 2e A étant
uneseconde instance de la même table A. Ceci est parfiatement autorisé
en SQL....

A +

On 9 juil, 14:34, Jean-Nicolas BERGER
wrote:
Bonjour,
Dans le cadre d'une migration SQL2000 vers SQL2005, j'ai un souci avec la
liste des problèmes potentiels détectés par l'Upgrade Advisor.

Sur des syntaxes comme celle-ci :
SELECT A as x, B as y FROM MaTable t ORDER BY t.x
SQL 2000 va passer, SQL2005 va bloquer, mais l'Advisor va détecter le c as.

Par contre, sur des syntaxes comme celle-là :
SELECT A,B,A FROM MaTable ORDER BY A
SQL 2000 va passer, SQL2005 va bloquer, mais l'Advisor ne va y voir que d u
feu !!! :-(

Quelqu'un pourrait-il éclairer ma lanterne sur ce que semble être des
lacunes de l'Advisor, avec éventuellement d'autres syntaxes obsolètes qu'il
ne détecterait pas ?

Merci d'avance pour votre aide.
JN


Avatar
Jean-Nicolas BERGER
> Cette syntaxe est nullement obsolète...
SELECT A,B,A FROM MaTable ORDER BY A



Bonjour,
Dans le cas présent, A et B sont des colonnes de la table MaTable.
Et je confirme que la syntaxe est acceptée en SQL2000 et refusée en SQL2005.
Il y a donc bien un problème non détecté par l'Advisor...

Cordialement.
JN
Avatar
Patrice
Intéressant, de mon côté je ne m'attendais pas non plus à ce que l'Advisor
détecte tout et rien à signaler (le peu que j'ai fait sans l'Advisor) mais
je garde ce cas en mémoire pour les suivantes un peu plus "trappues".

Peut-être un coup de connect.microsoft.com pour voir si le problème est
reporté ? Il est indiqué également dans les "breaking changes" ?

--
Patrice

"Jean-Nicolas BERGER" a écrit
dans le message de groupe de discussion :

Bonjour,
Dans le cadre d'une migration SQL2000 vers SQL2005, j'ai un souci avec la
liste des problèmes potentiels détectés par l'Upgrade Advisor.

Sur des syntaxes comme celle-ci :
SELECT A as x, B as y FROM MaTable t ORDER BY t.x
SQL 2000 va passer, SQL2005 va bloquer, mais l'Advisor va détecter le cas.

Par contre, sur des syntaxes comme celle-là :
SELECT A,B,A FROM MaTable ORDER BY A
SQL 2000 va passer, SQL2005 va bloquer, mais l'Advisor ne va y voir que du
feu !!! :-(

Quelqu'un pourrait-il éclairer ma lanterne sur ce que semble être des
lacunes de l'Advisor, avec éventuellement d'autres syntaxes obsolètes
qu'il
ne détecterait pas ?

Merci d'avance pour votre aide.
JN


Avatar
Steve Kass
Jean-Nicolas,

Dans votre 1ère requête, [x] n'est pas une colonne de la table [t].
Dans SQL Server 2000, il y avait une bogue ou dans
ORDER BY les noms des table n'avait aucun effêt. Donc le syntax
n'est pas obsolète, c'est incorrect.

Par exemple, SQL Server 2000 ne trouve pas l'erreur dans

SELECT A, B
FROM MaTable
ORDER BY JeanNicolasBerger.A

Steve Kass
Drew University
http://www.stevekass.com


Jean-Nicolas BERGER wrote:

Bonjour,
Dans le cadre d'une migration SQL2000 vers SQL2005, j'ai un souci avec la
liste des problèmes potentiels détectés par l'Upgrade Advisor.

Sur des syntaxes comme celle-ci :
SELECT A as x, B as y FROM MaTable t ORDER BY t.x
SQL 2000 va passer, SQL2005 va bloquer, mais l'Advisor va détecter le cas.

Par contre, sur des syntaxes comme celle-là :
SELECT A,B,A FROM MaTable ORDER BY A
SQL 2000 va passer, SQL2005 va bloquer, mais l'Advisor ne va y voir que du
feu !!! :-(

Quelqu'un pourrait-il éclairer ma lanterne sur ce que semble être des
lacunes de l'Advisor, avec éventuellement d'autres syntaxes obsolètes qu'il
ne détecterait pas ?

Merci d'avance pour votre aide.
JN




Avatar
Fred BROUARD
Jean-Nicolas BERGER a écrit :
Cette syntaxe est nullement obsolète...
SELECT A,B,A FROM MaTable ORDER BY A





Pardon, j'ai lu un peu vite....

Vous avez raison, mais par principe aucune colonne ne devrait avoir le
même nom, y compris dans des requêtes SELECT.

A +


Bonjour,
Dans le cas présent, A et B sont des colonnes de la table MaTable.
Et je confirme que la syntaxe est acceptée en SQL2000 et refusée en SQL2005.
Il y a donc bien un problème non détecté par l'Advisor...

Cordialement.
JN




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************