Dit is een beetje lang voor een opmerking. Jij zegt:
als de onderliggende tabelkolomnamen veranderen, hoeven de gebruikers van de weergave hun code niet te bewerken
Nou dat is een beetje waar. Als de onderliggende kolomnamen veranderen, wordt de weergave ongeldig. De code zal niet meer werken. U moet de weergave hoe dan ook opnieuw maken.
Als u zeker wilt zijn van de kolomnamen, kunt u de weergave expliciet maken met de kolomnamen:
Create view vBook1 (ISBN, Title) AS
SELECT ISBN, Title
FROM dbo.tBook;
Ik ben over het algemeen niet echt een grote fan van deze aanpak -- het kan grote schade aanrichten bij het toevoegen of herschikken van kolomnamen voor de weergave. Maar misschien waardeer je het.
Merk op dat ik de ORDER BY
. heb verwijderd en TOP 100 PERCENT
. Dit zijn hacks om de ORDER BY
. te krijgen geaccepteerd door de SQL Server-compiler. Dat betekent niet dat de weergave gegarandeerd in een bepaalde volgorde staat.
Dit wordt vrij expliciet uitgelegd in de documentatie :
Belangrijk
De ORDER BY-component wordt alleen gebruikt om de rijen te bepalen die worden geretourneerd door de TOP- of OFFSET-component in de weergavedefinitie. De ORDER BY-clausule garandeert geen geordende resultaten wanneer de weergave wordt opgevraagd , tenzij ORDER BY ook is opgegeven in de zoekopdracht zelf.