C'est un peu long pour un commentaire. Vous dites :
si les noms des colonnes de la table sous-jacente changent, les utilisateurs de la vue n'auront pas à modifier leur code
Eh bien, c'est un peu vrai. Si les noms de colonne sous-jacents changent, la vue sera invalidée. Le code ne fonctionnera plus. Vous devrez de toute façon recréer la vue.
Si vous voulez garantir les noms de colonne, vous pouvez créer la vue explicitement avec les noms de colonnes :
Create view vBook1 (ISBN, Title) AS
SELECT ISBN, Title
FROM dbo.tBook;
Je ne suis généralement pas vraiment un grand fan de cette approche - cela peut faire des ravages lors de l'ajout ou de la réorganisation des noms de colonnes pour la vue. Mais vous pourriez l'apprécier.
Notez que j'ai supprimé le ORDER BY
et TOP 100 PERCENT
. Ce sont des hacks pour obtenir le ORDER BY
accepté par le compilateur SQL Server. Cela ne signifie pas que la vue est garantie d'être dans un ordre particulier.
Ceci est assez explicitement expliqué dans le documentation :
Important
La clause ORDER BY est utilisée uniquement pour déterminer les lignes renvoyées par la clause TOP ou OFFSET dans la définition de la vue. La clause ORDER BY ne garantit pas l'ordre des résultats lorsque la vue est interrogée , sauf si ORDER BY est également spécifié dans la requête elle-même.