2011-12-10 69 views
1

我有一个关于视图的问题。考虑我们有一个观点,我在它的基表中插入一条记录。我的视图在插入后是否更新,或者我应该执行SELECT更新?插入(或更新)到基表后立即更新视图

我觉得我的问题很明显 - 是查看只是一个SELECT或它的结果保存在数据库中,如果它是基表,所以当它更新时,它会变成更新?

回答

4

正常视图不会持续。如果插入可更新视图,然后从视图(或受影响的基础表)中进行选择,将显示您的结果。

不完全确定你想要解决什么问题。视图(非索引)足以满足大多数应用程序的需求。

看一看索引视图:Improving Performance with SQL Server 2008 Indexed Views

在无索引的视图的情况下,解决了查询必要 视图的部分在运行时实例化。任何计算如 作为连接或聚合都是在查询执行期间为引用视图的每个 查询完成的。 在视图上创建的唯一聚簇索引为 之后,视图的结果集立即实现为 并且保存在数据库的物理存储中,从而节省了在执行时执行此代价高的操作的开销 。

索引视图的典型用法是当您需要执行昂贵的聚合时。

+0

你说普通views.Do我们有另一种视图类型?我希望我的数据保持不变,并且在我的基表中每个“插入”后,我的视图都会更新 – Arian

+1

是的,另一种类型被称为索引视图 –

+0

索引视图是否保留数据? – Arian

1

将视图视为选择语句。不必写出整个select语句,只需选择视图并为您运行select语句。所以是的,任何你对底层表执行的操作都会在视图中自动显示。