我们有一个x表,其中有a、b和c列。我们创建一个视图y,即:
select * from X
添加新列时 D 至 X ,视图返回错误的数据。据我所知,这是因为视图使用 '*' ,但为什么?
D
X
'*'
ddhy6vgd1#
听起来您使用的数据库在编写视图时对其进行编译,但不检测模式更改。我肯定在SQLServer中见过这样的事情。在该数据库中,您需要添加 schemabinding 选项。基本思想是,在任何模式更改之后,都需要重新编译或重新创建视图。
schemabinding
1条答案
按热度按时间ddhy6vgd1#
听起来您使用的数据库在编写视图时对其进行编译,但不检测模式更改。
我肯定在SQLServer中见过这样的事情。在该数据库中,您需要添加
schemabinding
选项。基本思想是,在任何模式更改之后,都需要重新编译或重新创建视图。