如果视图是构建在一个单独的表上,则在定义该视图的 SELECT 语句不包含任何以下元素的情况下,则该视图是
可更新的:
- 投影列表中是聚集值的列
- 投影列表中使用 UNIQUE 或 DISTINCT 关键字
- GROUP BY 子句
- UNION 操作符
- 选择计算或文字值的查询
您可以从一个单个表中选择计算值的视图执行 DELETE 操作,但是 INSERT 和 UPDATE 操作对这样的视图无效。
在可更新的视图中,可以通过将基础表中的值插入视图来更新这些值。然而,如果视图构建在列有派生值的表上,则该列不能够通过该视图更新。但是,可以更新视图中的其它列。
有关使用 INSTEAD OF 触发器更新基于多个表的视图,或者更新其中包括含有聚集值或其它计算值的列的视图的信息,另请参阅
更新视图。
重要: 您无法通过使用
WITH CHECK OPTION 关键字创建的视图更新或插入远程表中的行。