Tujuan dari skema yang mengikat tampilan adalah untuk memastikan bahwa tabel dasar yang direferensikan dalam tampilan tidak dapat dimodifikasi dengan cara yang akan mempengaruhi definisi tampilan.
Ini biasanya hal yang baik. Lagi pula, Anda tidak ingin seseorang datang dan menjatuhkan meja yang bergantung pada pandangan Anda, bukan?
Tetapi bagaimana jika Anda perlu membuat perubahan pada satu atau beberapa tabel yang direferensikan oleh tampilan Anda?
Dalam hal ini, Anda dapat menghapus pengikatan skema dari tampilan, membuat perubahan pada tabel dasar, lalu menerapkan kembali pengikatan skema.
Ada dua cara untuk menghapus pengikatan skema dari tampilan:
- Ubah tampilan sehingga definisinya tidak lagi menentukan pengikatan skema.
- Lepaskan tampilan (lalu buat ulang tanpa pengikatan skema jika diperlukan).
Contoh Tampilan Terikat Skema
Pertama, berikut ini contoh tampilan terikat skema:
CREATE VIEW dbo.v_Cats WITH SCHEMABINDING AS SELECT CatId, CatName, Phone FROM dbo.Cats; GO
Kami tahu ini adalah tampilan terikat skema karena berisi WITH SCHEMABINDING
dalam definisinya. Untuk menghapus pengikatan skema, yang perlu kita lakukan hanyalah menghapus bit itu.
Opsi 1 – Mengubah Tampilan
Untuk menghapus pengikatan skema dari tampilan ini dengan mengubahnya, kita dapat menggunakan kode berikut:
ALTER VIEW dbo.v_Cats AS SELECT CatId, CatName, Phone FROM dbo.Cats; GO
Yang kami lakukan hanyalah mengubah CREATE
untuk ALTER
, dan hapus WITH SCHEMABINDING
.
Opsi 2 – Lepaskan Tampilan
Berikut ini contoh menghapus tampilan, lalu membuatnya kembali tanpa pengikatan skema:
DROP VIEW IF EXISTS dbo.v_Cats; GO CREATE VIEW dbo.v_Cats AS SELECT CatId, CatName, Phone FROM dbo.Cats; GO
Dalam hal ini, saya menggunakan sintaks DROP IF EXISTS, yang mencegah terjadinya kesalahan jika tampilan tidak ada.