SQL 2008:我创建了一个视图(select * from VW_Test1
)。
此视图的目标是table1和table2。
由于某些原因,我将这些表重命名为table1_old和table2_old。
我使用新值创建了新表作为table1和table2。
当我执行视图时,它给出了之前给出的相同输出...即受影响的308行。
实际上,我期待更多的行..是否可以像缓冲区一样在缓冲区中查看存储..
或如何清除并再次执行..?或者可能是其他一些原因???
答案 0 :(得分:2)
来自MSDN - CREATE VIEW:
如果视图依赖于已删除的表或视图,则当有人尝试使用该视图时,数据库引擎会生成错误消息。如果创建了新表或视图,并且表结构未从先前的基表更改以替换已删除的表,则视图将再次变为可用。如果新表或视图结构发生更改,则必须删除并重新创建视图。
和
如果未使用SCHEMABINDING子句创建视图,则应在对视图下方影响视图定义的对象进行更改时运行sp_refreshview。否则,查询时视图可能会产生意外结果。
我建议你DROP并重新创建视图。