2011-12-14 24 views
40

Tôi đang sử dụng Chế độ xem trong Thủ tục được lưu trữ (SQL-Server). Để cải thiện hiệu suất, tôi đã cố tạo INDEX của Chế độ xem đó.Không thể tạo chỉ mục trên chế độ xem 'View_Table_Name' vì chế độ xem không phải là lược đồ bị ràng buộc

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER VIEW VW_Table_Name 
AS 
SELECT Col1,Col2,Col3 FROM Table_Name 
GO 
CREATE UNIQUE CLUSTERED INDEX Index_Name ON [VW_Table_Name](Col1) 
GO 

Ở đây tôi nhận được lỗi như

Msg 1939, Level 16, State 1, Line 1 Không thể tạo chỉ mục trên xem 'VW_FML' vì xem không phải là schema ràng buộc.

Chúng tôi có thể tạo Chỉ mục cho chế độ xem trong SQL Server không?

Trả lời

60

Có một số hạn chế về chế độ xem được lập chỉ mục: không có truy vấn phụ, không có công đoàn, không có kết nối bên ngoài, v.v. Xem this article để biết thêm chi tiết. Nhưng đối với trường hợp của bạn, bạn chỉ cần tạo khung nhìn với ràng buộc lược đồ.

CREATE VIEW VW_Table_Name WITH SCHEMABINDING 
AS 
SELECT Col1,Col2,Col3 FROM Table_Name 
GO 
2

Bởi vì bạn đang cố gắng để tạo ra một chỉ mục Xem hoặc Materialized Xem. Bắt buộc của nó cho một cái nhìn để có "VỚI SCHEMABINDING" tùy chọn nếu bạn đang tạo một chỉ số Clustered trên đầu trang của nó.

Chế độ xem không là gì ngoài truy vấn được lưu trữ, nếu bạn định tạo chỉ mục trên đó, thì chỉ mục sẽ sử dụng truy vấn đó và thực thi nó trên bảng đó, trong trường hợp này bạn phải đảm bảo rằng bảng không thay đổi bên dưới. Vì vậy, bằng cách thực thi ràng buộc SQL Server này đảm bảo mọi thứ vẫn được đồng bộ.

0

Microsoft, Nếu bạn đang nghe, nó sẽ là nếu views (sử dụng quan điểm khác VỚI SCHEMA RÀNG BUỘC) có thể được lập chỉ mục để tạo cụ thể hóa quan điểm rất hữu ích. Có vẻ như hoàn toàn có thể. Đầu mối là câu cuối cùng của thông báo lỗi.

Đây là lỗi văn bản đầy đủ: Msg 1937, Level 16, State 1, Line 2 Không thể tạo chỉ mục trên xem 'TEST.dbo.v_NH_GRM_SAP_bridge' vì nó tham chiếu khác xem 'dbo.v_NH_GRM_SAP_bridge_key_1'. Cân nhắc mở rộng định nghĩa chế độ xem được tham chiếu bằng tay trong định nghĩa chế độ xem được lập chỉ mục.

Các vấn đề liên quan