1. 程式人生 > >(MSSQL)sp_refreshview刷新視圖失敗及更新Table字段失敗的問題解決

(MSSQL)sp_refreshview刷新視圖失敗及更新Table字段失敗的問題解決

flow table logs name 由於 嘗試 stack views .com

在近期工作中遇到一個任務,需要批量更改散布在很多Table中的某字段,同時刷新相關視圖,但是在執行腳本時,發現了如下問題

更新字段問題

消息 5074,級別 16,狀態 1,第 1 行
對象View_RosterStudent 依賴於 列sName。
消息 4922,級別 16,狀態 9,第 1 行
由於一個或多個對象訪問此列,ALTER TABLE ALTER COLUMN sName 失敗。

刷新視圖問題

消息 15165,級別 16,狀態 1,過程 sp_refreshsqlmodule_internal,第 55 行
找不到對象 View_RosterStudent,或者您沒有所需的權限。

經在網上查找問題相關信息,最終在Stack Overflow發現了同樣的問題,在最高贊回答中找到了答案,原因是這個視圖架構綁定到了這個表,導致了以上問題,具體細節可百度搜索架構綁定。

但是,因為這個視圖創建了索引,且架構綁定是索引所必須的,所以我這裏放棄了更改,暫時沒有驗證重新創建不架構綁定的該視圖可以解決以上問題,有興趣或條件合適的朋友可以嘗試一下,可以回復本帖。

註:另外導致視圖無法刷新的原因可能是MSSQL2008的一個bug,解決方法可以參照這篇文章。

(MSSQL)sp_refreshview刷新視圖失敗及更新Table字段失敗的問題解決