我们可以在视图中编写更新和删除查询吗?

Sur*_*har 10 sql-server view

在SQL Server 2005中,我使用SELECT语句创建了一些视图.我们可以在观点中写作UPDATEDELETE陈述吗?

Sri*_*thy 19

从这篇MSDN文章:通过视图修改数据,

  • 任何修改(包括UPDATE,INSERT和DELETE语句)都必须仅引用一个基表中的列.
  • 在视图中修改的列必须直接引用表列中的基础数据.它们不能以任何其他方式派生,例如通过:

    • 聚合函数(AVG,COUNT,SUM,MIN,MAX,GROUPING,STDEV,STDEVP,VAR和VARP).
    • 计算; 无法使用其他列从表达式计算列.使用集合运算符(UNION,UNION ALL,CROSSJOIN,EXCEPT和INTERSECT)形成的列相当于计算,也不可更新.
  • 正在修改的列不受GROUP BY,HAVING或DISTINCT子句的影响.

  • 当指定WITH CHECK OPTION时,不能在视图的select_statement中的任何位置使用TOP.

并看到剩下的文章......


kem*_*002 12

那么你可以从视图中删除这是你要问的,但你不能有一个删除信息的视图.视图是基础表的一部分数据.如果您具有权限,则可以在可以直接对表执行的视图中执行相同的数据操作.

所以你可以这样做:

DELETE FROM my_View WHERE id = 3;
Run Code Online (Sandbox Code Playgroud)

何时使用视图
什么是视图