只要知足下列條件,便可經過視圖修改基礎基表的數據:
一、任何修改(包括 UPDATE、INSERT 和 DELETE 語句)都只能引用一個基表的列。
二、視圖中被修改的列必須直接引用表列中的基礎數據。不能經過任何其餘方式對這些列進行派生,如經過如下方式:
1)聚合函數:AVG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、VAR 和 VARP。
2)計算。不能從使用其餘列的表達式中計算該列。使用集合運算符 UNION、UNION ALL、CROSSJOIN、EXCEPT 和 INTERSECT 造成的列將計入計算結果,且不可更新。
三、被修改的列不受 GROUP BY、HAVING 或 DISTINCT 子句的影響。
四、TOP 在視圖的 select_statement 中的任何位置都不會與 WITH CHECK OPTION 子句一塊兒使用。
上述限制適用於視圖的 FROM 子句中的任何子查詢,就像其應用於視圖自己同樣。一般狀況下,數據庫引擎必須可以明確跟蹤從視圖定義到一個基表的修改數據庫