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是视图名称)

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

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

 

posted @ 2017-04-13 15:17  mzll  阅读(6320)  评论(0编辑  收藏  举报