SQL 2005 Clause ORDER BY dans une vue
Je dispose d'une vue qui contient une requête SQL de ce type :
Code:
1 2 3 4 5
| CREATE VIEW MaVue
SELECT TOP 100 PERCENT Col1,Col2,Col3
FROM MaTable
WHERE Col1 = MaValeur
ORDER BY Col1,.. |
Sur cette vue, on effectue une requête SELECT * FROM MaVue
En SQL 2000, j’obtenais un résultat correct et trié. Par contre, depuis la migration en SQL 2005, le résultat n'est plus trié.
J'ai essayé différentes solutions pour tenter de résoudre ce problème :
- Utilisation de nom de colonne au lieu d'alias
- Utilisation de la clause WITH TIES
- Index forcé
Le tri ne s'effectue pas. Le plan d'exécution montre bien que la clause ORDER BY n'est pas exécutée.
Le résultat est correct si je fait SELECT * FROM MaVue ORDER BY ... ou si je transforme ma vue en procédure stockée.
Je ne comprends pas pourquoi l'ORDER BY n'est pas exécuté bien que cette clause est indiquée dans la vue.
Pour information, il s'agit d'un serveur SQL 2005 64 Bits en SP2 avec 16 GB de mémoire et 8 CPU.
Avez-vous une idée ?
D'avance, merci.