sqlserver更新数据表结构增加新字段时,和它相关联的视图出现错列现象

sqlserver在已有表的基础上新增一列时,跟他相关联的试图出现列错位现象

表user原来的结构如下:

表order原来结构如下:

原试图:

SELECT     dbo.[order].userid, dbo.[order].ordernumber, dbo.[order].price, dbo.[user].name, dbo.[user].sex
FROM         dbo.[order] LEFT OUTER JOIN
                      dbo.[user] ON dbo.[order].userid = dbo.[user].id

视图查询结果:

当order表增加一个productid字段:

 再次查询视图时结果:

order表productid的内容将替换掉user表name字段,然而name字段将后移一列

解决方法:

  sp_refreshview orderview   (orderivew是视图名称)

  运行这段会让指定的视图在下次运行时重新编译 

  基础表修改后, 视图结构自动更新的最简单的方式就是让相关的视图重新编译. 

原文地址:https://www.cnblogs.com/kcjm/p/6704059.html