Biasanya ide yang baik untuk mengikat skema pandangan Anda di SQL Server.
Skema yang mengikat tampilan Anda akan memastikan bahwa tabel yang mendasarinya tidak dapat diubah dengan cara yang akan memengaruhi tampilan. Tanpa pengikatan skema, tabel yang mendasari atau objek lain dapat dimodifikasi atau bahkan dihapus. Jika itu terjadi, tampilan tidak akan berfungsi seperti yang diharapkan.
Untuk membuat tampilan terikat skema, gunakan WITH SCHEMABINDING
dalam kode T-SQL Anda untuk membuat tampilan.
Contoh
Berikut ini contoh pembuatan tampilan terikat skema:
CREATE VIEW dbo.v_Cats WITH SCHEMABINDING AS SELECT CatId, CatName, Phone FROM dbo.Cats; GO
Perhatikan saya menggunakan nama dua bagian saat mereferensikan tabel dalam kueri saya – saya menggunakan dbo.Cats
bukan hanya Cats
. Melakukan ini adalah persyaratan untuk skema yang mengikat objek. Jika Anda mencoba untuk mengikat skema objek tanpa menggunakan nama dua bagian, Anda akan mendapatkan kesalahan.
Sekarang saya memiliki skema yang mengikat pandangan saya, jika saya mencoba untuk menjatuhkan tabel yang dirujuk dalam definisinya, saya mendapatkan kesalahan:
DROP TABLE Cats;
Hasil:
Msg 3729, Level 16, State 1, Line 1 Cannot DROP TABLE 'Cats' because it is being referenced by object 'v_Cats'.
Inilah yang terjadi jika saya mencoba untuk mengikat skema tampilan tanpa menggunakan penamaan dua bagian:
CREATE VIEW dbo.v_Cats WITH SCHEMABINDING AS SELECT CatId, CatName, Phone FROM Cats; GO
Hasil:
Msg 4512, Level 16, State 3, Procedure v_Cats, Line 5 Cannot schema bind view 'dbo.v_Cats' because name 'Cats' is invalid for schema binding. Names must be in two-part format and an object cannot reference itself.
Atribut Tampilan Lainnya
Beberapa atribut dapat dipisahkan dengan koma. Anda tidak perlu menentukan WITH
untuk setiap atribut.
Misalnya, jika Anda ingin tampilan terikat skema dan terenkripsi, Anda dapat melakukan ini:
CREATE VIEW dbo.v_Cats WITH SCHEMABINDING, ENCRYPTION AS SELECT CatId, CatName, Phone FROM dbo.Cats; GO