Mục đích của lược đồ ràng buộc một dạng xem là để đảm bảo rằng các bảng cơ sở được tham chiếu trong dạng xem không thể được sửa đổi theo cách có thể ảnh hưởng đến định nghĩa dạng xem.
Đây bình thường là một điều tốt. Rốt cuộc, bạn không muốn ai đó đi cùng và bỏ rơi một chiếc bàn mà tầm nhìn của bạn phụ thuộc vào, phải không?
Nhưng điều gì sẽ xảy ra nếu bạn cần thực hiện thay đổi đối với một hoặc nhiều bảng mà chế độ xem của bạn tham chiếu?
Trong trường hợp này, bạn có thể xóa liên kết lược đồ khỏi một dạng xem, thực hiện các thay đổi đối với / s bảng cơ sở, sau đó áp dụng lại liên kết lược đồ.
Có hai cách để xóa liên kết lược đồ khỏi một chế độ xem:
- Thay đổi chế độ xem để định nghĩa của nó không còn chỉ định liên kết lược đồ.
- Bỏ chế độ xem (sau đó tạo lại chế độ xem mà không có liên kết lược đồ nếu cần).
Ví dụ về Chế độ xem liên kết lược đồ
Đầu tiên, đây là một ví dụ về chế độ xem liên kết giản đồ:
CREATE VIEW dbo.v_Cats WITH SCHEMABINDING AS SELECT CatId, CatName, Phone FROM dbo.Cats; GO
Chúng tôi biết đó là chế độ xem liên kết giản đồ vì nó chứa WITH SCHEMABINDING
trong định nghĩa của nó. Để xóa liên kết lược đồ, tất cả những gì chúng ta cần làm là xóa bit đó.
Tùy chọn 1 - Thay đổi chế độ xem
Để xóa liên kết lược đồ khỏi chế độ xem này bằng cách thay đổi nó, chúng tôi có thể sử dụng mã sau:
ALTER VIEW dbo.v_Cats AS SELECT CatId, CatName, Phone FROM dbo.Cats; GO
Tất cả những gì chúng tôi đã làm là thay đổi CREATE
thành ALTER
và xóa WITH SCHEMABINDING
.
Tùy chọn 2 - Thả chế độ xem
Dưới đây là một ví dụ về việc loại bỏ chế độ xem, sau đó tạo lại chế độ xem mà không có liên kết lược đồ:
DROP VIEW IF EXISTS dbo.v_Cats; GO CREATE VIEW dbo.v_Cats AS SELECT CatId, CatName, Phone FROM dbo.Cats; GO
Trong trường hợp này, tôi đã sử dụng cú pháp DROP IF EXISTS, cú pháp này ngăn lỗi xảy ra trong trường hợp chế độ xem không tồn tại.