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是視圖名稱)
運行這段會讓指定的視圖在下次運行時重新編譯
基礎表修改后, 視圖結構自動更新的最簡單的方式就是讓相關的視圖重新編譯.