【发布时间】:2011-12-10 09:55:06
【问题描述】:
我有一个关于视图的问题。考虑我们有一个视图,我在它的基表中插入一条记录。插入后我的视图是否会更新,或者我应该执行SELECT 来更新?
我认为我的问题很明显 - 只是查看 SELECT 或者它的结果保存在数据库中,如果它是基表,那么当它更新时它就会变成更新?
【问题讨论】:
标签: sql sql-server sql-server-2008 view
我有一个关于视图的问题。考虑我们有一个视图,我在它的基表中插入一条记录。插入后我的视图是否会更新,或者我应该执行SELECT 来更新?
我认为我的问题很明显 - 只是查看 SELECT 或者它的结果保存在数据库中,如果它是基表,那么当它更新时它就会变成更新?
【问题讨论】:
标签: sql sql-server sql-server-2008 view
普通视图不会被持久化。如果插入了可更新视图,则从视图(或受影响的基础表)中进行选择将显示您的结果。
不完全确定您要解决什么问题。视图(非索引)足以满足大多数应用程序。
查看索引视图:Improving Performance with SQL Server 2008 Indexed Views:
在非索引视图的情况下,视图的必要部分 解决查询是在运行时实现的。任何计算,如 因为连接或聚合是在每个查询执行期间完成的 查询引用视图。 在唯一聚集索引被 在视图上创建,视图的结果集立即物化 并持久化在数据库中的物理存储中,节省开销 在执行时执行这种昂贵的操作。
索引视图的典型用途是当您需要执行昂贵的聚合时。
【讨论】:
insert 之后,我的视图都会更新
将视图视为一个选择语句。不必写出整个 select 语句,您只需选择视图,它就会为您运行该 select 语句。所以是的,你对基础表所做的任何事情都将自动在视图中可见。
【讨论】: