在 MS SQL Server 中,視圖 是一種虛擬資料表,其結構與資料源自一個或多個基礎資料表(或其他視圖)的查詢結果。雖然視圖擁有定義好的欄位與資料列,外觀上與實體資料表無異,但其本質並不實際儲存資料,而是將查詢邏輯封裝起來,資料仍存放於參考的基礎表中。一旦建立,視圖定義會儲存在資料庫內,透過視圖存取資料時,實際上是在操作底層的基礎表。
對視圖進行查詢、修改或刪除操作,與操作實體表類似,但修改視圖資料時會受到一定限制。當透過視圖更新資料時,對應的基礎表資料也會同步變更;反之,基礎表資料異動也會自動反映在視圖中。這種動態關聯使視圖成為簡化資料存取與維護一致性的有力工具。
視圖能讓使用者僅關注其所需的特定資料子集與業務任務,隱藏不相關的欄位或資料列,從而提升資料安全性與專注度。
複雜的多表聯結、聚合或篩選邏輯可封裝於視圖定義中。使用者後續只需對視圖發出簡單的 SELECT 指令,即可重複取得相同結果,無需重寫冗長的 SQL 語句,有效降低開發與維護成本。
同一資料庫可為不同角色的使用者建立不同視圖,呈現差異化的資料切面。例如:管理者看完整薪資資料,一般員工僅見自己的薪資欄位。這在多層級使用者共享資料庫的情境極為關鍵。
當大型資料表因效能考量而進行水平或垂直分割時,原有應用程式可能面臨結構變更的衝擊。透過視圖重組分割後的資料表,可維持原有的對外結構(外部模式)不讓,既保留舊程式相容性,又享有分割帶來的效能優勢。
視圖可作為存取控制層:授予使用者視圖權限,而不直接授予基礎表權限。使用者僅能查看或修改視圖定義範圍內的資料,其他敏感資料表保持不可見、不可存取。視圖權限與基礎表權限獨立設定,彈性極高。
善用視圖不僅能簡化 SQL 開發、強化資料安全,更能在資料庫架構演進中提供彈性的抽象層,是 MS SQL Server 開發與管理不可或缺的核心功能之一。