Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Hapus SKEMABINDING dari Tampilan di SQL Server

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CTE untuk mendapatkan semua anak (keturunan) dari orang tua

  2. Dapatkan Nama Hari Singkat di SQL Server (T-SQL)

  3. Cara Menggunakan Perancang Kueri di SQL Server

  4. Bagaimana Saya Menyalin Kumpulan Data, dan Mengubah Referensi FK untuk Menunjuk ke Semua Salinan?

  5. Cara Menemukan Nama Batasan di SQL Server