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