2011-08-31 43 views
0

由于我是新的SQL Server,我的问题是我们可以更新视图中的真实数据吗?

  1. 我们可以更新的看法?

  2. 我们可以更新视图中的真实表格数据吗?

+1

一个视图只是一个选择表 - 一个视图本身没有“有”数据....如果你想更新数据 - 更新基础表;一旦你这样做,视图将立即显示这个更新的数据 –

回答

3

如果更新视图,实际上您将更新基础表。视图不是物理的,只是它下面的数据表示。 它通常被认为低于:

在大多数情况下,你可以,只要他们安装,以满足更新(http://msdn.microsoft.com/en-us/library/25614805(v=vs.80).aspx你可以阅读更多有关启用观点的新闻点击这里)执行经更新视图语句伟大的做法是这样做的。它使事情变得非常复杂,所以你必须有一个很好的理由来这样做。

+1

我的问题是,因为你一次只能更新一个视图中的一个表,因此你需要知道哪个视图位于哪个表中,所以没有意义直接更新表格。当您使用视图将用户限制在一个表中的数据的子集时,会出现异常情况。然后通过视图更新是有意义的。 – HLGEM

1

可以通过更新视图来更新基础表数据。

这里需要注意的一点是,只要基于一个表创建视图,那么直接“更新视图”语句就可以工作。

但是,如果视图是基于多个表创建的,那么直接的Update语句将不起作用。我们需要在这些场景中使用“替代触发器”。

+7

不完全正确。只要更新仅影响一个表,则可以基于多个表更新视图。相反,View可以基于单个表格,但仍不可更新(例如,如果它包含“GROUP BY”) –

相关问题