優點:
一、簡單性。視圖不僅可以簡化用戶對數據的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為視圖,從而使用戶不必為以后的操作每次都指定全部的條件。
二、安全性。通過視圖用戶只能查詢和修改他們所能見到的數據。數據庫中的其他數據則既看不見也取不到。數據庫授權命令可以使每個用戶對數據庫的檢索限制到特定的數據庫對象上,但不能授權到數據庫特定行和特定的列上。通過視圖,用戶可以被限制在數據的不同子集上。
三、 邏輯數據獨立性。視圖可以使應用程序和數據庫表在一定程度上獨立。如果沒有視圖,應用一定是建立在表上的。
有了視圖之后,程序可以建立在視圖之上,從而程序與數據庫表被視圖分割開來。
缺點:
一、性能:SQL Server必須把視圖的查詢轉化成對基本表的查詢,如果這個視圖是由一個復雜的多表查詢所定義,那么,即使是視圖的一個簡單查詢,SQL Server也把它變成一個復雜的結合體,需要花費一定的時間。
二、 修改限制:當用戶試圖修改視圖的某些行時,SQL Server必須把它轉化為對基本表的某些行的修改。對于簡單視圖來說,這是很方便的,但是,對于比較復雜的視圖,可能是不可修改的。
創建視圖的限制:
1.不能將規則或者DEFAULT定義關聯于視圖。
2.定義視圖的查詢中不能含有ORDER BY\COMPURER\COMPUTER BY 子句和INTO關鍵字
3.如果視圖中某一列是一個算術表達式、構造函數或者常數,而且視圖中兩個或者更多的不同列擁有一個相同的名字(這種情況通常是因為在視圖的定義中有一個連接,而且這兩個或者多個來自不同表的列擁有相同的名字),此時,用戶需要為視圖的每一列指定列的名稱。
文章列表