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是视图名称)
运行这段会让指定的视图在下次运行时重新编译
基础表修改后, 视图结构自动更新的最简单的方式就是让相关的视图重新编译.