SQL视图中的字段与基表中的字段不一致,原因是什么?

       出现这样的原因是修改了表的结构,没有重新编译视图,这种情况出现的几率很少,并不是没有。

解决方法:重新编译一下该视图。

视图是一个虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据,视图所对应的数据不会进行存储。如果我们把基础表的架构更改了,并不会直接反应到视图上;

编译视图的方法:

使用系统存储过程sp_refreshview.

具体操作是: 现有视图view_test,基表是test和test_b.

假如test或者test_b表结构进行了更改,重新刷新(编译)视图时,输入并执行下面语句

sp_refreshview  view_test

由此也可以看出,尽量不要用视图作为数据源去给另一个表插入数据。

比如,用view_test数据往test表中插入数据。

因为基表表结构发生变化后,视图的表结构不一定实时更新。这时候,用视图作为数据源去插入基表,就会报错。

参考来源:https://developer.aliyun.com/ask/325145

 

posted @ 2022-10-07 21:59  美人她爹  阅读(387)  评论(0编辑  收藏  举报