出现这样的原因是修改了表的结构,没有重新编译视图,这种情况出现的几率很少,并不是没有。
解决方法:重新编译一下该视图。
视图是一个虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据,视图所对应的数据不会进行存储。如果我们把基础表的架构更改了,并不会直接反应到视图上;
编译视图的方法:
使用系统存储过程sp_refreshview.
具体操作是: 现有视图view_test,基表是test和test_b.
假如test或者test_b表结构进行了更改,重新刷新(编译)视图时,输入并执行下面语句
sp_refreshview view_test
由此也可以看出,尽量不要用视图作为数据源去给另一个表插入数据。
比如,用view_test数据往test表中插入数据。
因为基表表结构发生变化后,视图的表结构不一定实时更新。这时候,用视图作为数据源去插入基表,就会报错。
参考来源:https://developer.aliyun.com/ask/325145
标签:数据源,数据,视图,编译,SQL,test,基表中,view From: https://www.cnblogs.com/fatherofbeauty/p/16767293.html