当前位置:  开发笔记 > 数据库 > 正文

SQL Server View在更改底层依赖项后显示过时/错误数据

如何解决《SQLServerView在更改底层依赖项后显示过时/错误数据》经验,为你挑选了2个好方法。

我们有一个View(称之为X),它是由其他2个视图调用的基本视图(称为Y和Z).

今天我们进行了更改以查看X,在该视图之后,Y和Z开始返回不正确的数据.当我们在Management Studio中运行时Select * from Y(这正是代码中调用视图的方式),它将返回不正确的数据.但是,当我们运行视图包含它的实际SQL时很好.我们尝试了很多东西,直到一位同事建议添加一个空格来查看X和Z,然后运行Alter,这是有效的.一切恢复正常,运行良好.

我的问题是:MSSQL是否缓存其视图?如果是这样,你怎么强迫他们不要强迫他们重新编译?

此外,任何有关此的额外阅读将是有帮助的.



1> RedFilter..:

请参见sp_refreshview命令.

更新指定的非架构绑定视图的元数据.由于视图所依赖的基础对象的更改,视图的持久元数据可能会过时.



2> Mitch Wheat..:

SQL Server不会缓存视图数据(至少不会像您指的那样).

如果视图定义包含"SELECT*",则在创建视图时定义实际列列表,即"SELECT*"由实际列列表替换,而不是在创建视图时存在.这意味着如果向该视图引用的基础表添加列,则该列不会显示在视图中.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有