使用视图进行修改

您可以修改视图,就像它们是表一样。某些视图可以修改,而另一些则不能修改,这取决于它们的 SELECT 语句。限制是不同的,这取决于您是否使用 DELETE、UPDATE 或 INSERT 语句。

如果用于定义视图的 SELECT 语句没有包含下列任何一项,那么可以修改该视图:
  • 两个或更多个表的连接
  • 聚集函数或 GROUP BY 子句
  • DISTINCT 关键字或其同义词,UNIQUE
  • UNION 关键字
  • 计算值或字面值

当视图避免了所有这些受限特征时,视图的每一行都刚好与一个表的一行相对应。通过使用 INSTEAD OF 触发器,可以规避视图上的这些限制(若触发器操作修改了基本表的话)。