我们有一个视图(称为 X),它是由其他 2 个视图(称为 Y 和 Z)调用的基本视图。
今天我们对视图 X 进行了更改,之后视图 Y 和 Z 开始带回不正确的数据。当我们在 Management Studio 中运行时SELECT * FROM Y
(这正是在代码中调用视图的方式),它会返回不正确的数据。但是,当我们运行视图包含的实际 SQL 时,它就很好了。我们尝试了很多方法,直到一位同事建议添加一个空间来查看 X 和 Z,然后运行 Alter,它奏效了。一切恢复正常并运行良好。
我的问题是:MSSQL 是否缓存其视图?如果是这样,你如何强迫他们不要或强迫他们重新编译?
此外,任何关于此的额外阅读都会有所帮助。