为什么在sql server中向表中添加新列会破坏使用“*”的视图

iswrvxsc  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(348)

我们有一个x表,其中有a、b和c列。
我们创建一个视图y,即:

select * from X

添加新列时 DX ,视图返回错误的数据。
据我所知,这是因为视图使用 '*' ,但为什么?

ddhy6vgd

ddhy6vgd1#

听起来您使用的数据库在编写视图时对其进行编译,但不检测模式更改。
我肯定在SQLServer中见过这样的事情。在该数据库中,您需要添加 schemabinding 选项。基本思想是,在任何模式更改之后,都需要重新编译或重新创建视图。

相关问题