只要满足下列条件,即可通过视图修改基础基表的数据:
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 子句中的任何子查询,就像其应用于视图本身一样。通常情况下,数据库引擎必须能够明确跟踪从视图定义到一个基表的修改
时间: 2024-09-29 22:53:40