Table改後,有用到它的View需要Alter或是重建嗎?
可以利用 sp_refreshview 哦!
有時 Table Schema 修改後,當執行有使用到該 Table 的 View 時,
會發現 View 傳回來的資料怪怪的。
這時我們常常都是 Alter 或是 重建 那個 View。
但發現 View 有問題,再 Alter or ReCreate View 似乎不太好(有可能是客戶跟你報錯時,才發現)!
所以我們可以在調整完 Table Schema 後,透過 sp_refreshview 來更新 View 的 Metadata。
利用 msdn 的 SQL,來更新有用到該 Table 的 View ,如下,
SELECT DISTINCT 'EXEC sp_refreshview ''' + name + ''''
FROM sys.objects so INNER JOIN sys.sql_dependencies sd
ON so.object_id = sd.object_id
WHERE type = 'V'
AND sd.referenced_major_id = object_id('更新的TableName');
參考資料
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^