檢視表是虛擬表,提供資料安全、簡化查詢、隱藏複雜聯結的能力。本文系統說明 CREATE VIEW 語法、WITH ENCRYPTION/WITH CHECK OPTION 選項、可更新檢視表限制(單一基底表、無聚合/UNION)、索引檢視表(具體化檢視表)建立條件與效能優勢、分割檢視表實現水平分割,並附索引建立最佳實踐。
CREATE VIEW View_Name [ (column_list) ]
[ WITH ENCRYPTION | WITH CHECK OPTION ]
AS SELECT ...
WITH ENCRYPTION:加密定義,防止檢視定義被查看。WITH CHECK OPTION:確保透過檢視表修改的資料符合檢視定義的 WHERE 條件。僅單一基底表、無 GROUP BY/DISTINCT/聚合/衍生欄位、修改欄位直接對應基底表欄位時,才允許 INSERT/UPDATE/DELETE。多表檢視表需分別對各基底表操作。
SCHEMABINDING、SET ANSI_NULLS ON、SET QUOTED_IDENTIFIER ON、確定性函數、無外部存取等。透過 CHECK 約束定義資料範圍,聯合多台伺服器/資料庫的同結構表,實現透明水平分割,支援 UPDATE 自動路由。