Ini agak panjang untuk komentar. Anda mengatakan:
jika nama kolom tabel yang mendasarinya berubah, pengguna tampilan tidak perlu mengedit kode mereka
Yah itu agak benar. Jika nama kolom yang mendasarinya berubah, maka tampilan akan menjadi tidak valid. Kode tidak akan berfungsi lagi. Anda tetap harus membuat ulang tampilan.
Jika Anda ingin memastikan nama kolom, Anda dapat membuat tampilan eksplisit dengan nama kolom:
Create view vBook1 (ISBN, Title) AS
SELECT ISBN, Title
FROM dbo.tBook;
Saya biasanya bukan penggemar berat pendekatan ini -- pendekatan ini dapat mendatangkan malapetaka saat menambahkan atau mengatur ulang nama kolom untuk tampilan. Tapi Anda mungkin menghargainya.
Perhatikan bahwa saya menghapus ORDER BY
dan TOP 100 PERCENT
. Ini adalah peretasan untuk mendapatkan ORDER BY
diterima oleh kompiler SQL Server. Itu tidak berarti bahwa tampilan dijamin dalam urutan tertentu.
Ini dijelaskan secara eksplisit dalam dokumentasi :
Penting
Klausa ORDER BY hanya digunakan untuk menentukan baris yang dikembalikan oleh klausa TOP atau OFFSET dalam definisi tampilan. Klausa ORDER BY tidak menjamin hasil yang diurutkan saat tampilan dikueri , kecuali ORDER BY juga ditentukan dalam kueri itu sendiri.