2

如果我有这样的表MyTable

Value1 decimal

然后我有一个看法MyView

Select SUM(Value1) as SumValue1 from MyTable

当我在视图的列部分下查看 SSMS 中视图的列数据类型时,它是小数。

现在,如果我将表修改为:

Value1 real

如果我在 SSMS 中刷新视图的列部分,则数据类型仍然是小数。现在,如果我打开视图并重新保存它,数据类型将变为浮点数。

这是应该的吗?在我重新保存之前,视图似乎不会改变。

4

1 回答 1

7

是的,这是意料之中的。可以以使视图完全无效的方式更改表。如果您想防止这种情况发生,您可以在创建视图时使用WITH SCHEMABINDING选项。从链接的文章:

将视图绑定到基础表的架构。指定 SCHEMABINDING 时,不能以会影响视图定义的方式修改一个或多个基表。必须首先修改或删除视图定义本身,以删除对要修改的表的依赖关系。

于 2012-11-03T01:23:35.003 回答