(MSSQL)sp_refreshview刷新視圖失敗及更新Table字段失敗的問題解決
阿新 • • 發佈:2017-08-23
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字段失敗的問題解決