如果我有这样的表MyTable
:
Value1 decimal
然后我有一个视图MyView
:
Select SUM(Value1) as SumValue1 from MyTable
当我在视图的列部分下查看SSMS中视图的列数据类型时,它是一个小数。
现在,如果我将表修改为:
Value1 real
如果我在SSMS中刷新视图的列部分,则数据类型仍为小数。现在,如果我打开视图并重新保存它,则数据类型将变为浮点数。
这是怎么回事?在重新保存之前,视图似乎没有改变。
答案 0 :(得分:6)
是的,这是预料之中的。可以通过创建视图completely invalid的方式更改表。如果要防止这种情况发生,可以在创建视图时使用WITH SCHEMABINDING选项。来自链接的文章:
将视图绑定到基础表的模式。指定SCHEMABINDING时,不能以影响视图定义的方式修改基表。必须首先修改或删除视图定义本身,以删除要修改的表的依赖关系。