Sql-Server

對象的定義’spn我__spn一種米和sp_name’ 已更改,因為它是在故障轉移到鏡像數據庫時編譯的

  • August 3, 2019

我們在鏡像中配置了兩台 SQL 2012 數據庫伺服器,並帶有見證伺服器以實現自動故障轉移。

昨天主伺服器遭受了硬碟降級,觸發了故障轉移,但是當輔助伺服器成為主伺服器時,我們開始看到一些 SPROC 執行時出現許多錯誤。

對象的定義'

$$ sp_name $$’ 自編譯後已更改

我知道這可以通過執行sp_recompile新原則來解決,這將強制對所有 SPROC、函式和触發器進行重新編譯。

這並不理想,因為它需要手動干預故障轉移。這是我可以通過修改配置解決的問題,還是已知的 SQL Server 錯誤?

您使用的是哪個 SQL 版本?有時引擎無法引用元數據目錄導致此類錯誤。這被確定為一個錯誤。但是您有解決此問題的方法。如果您可以在下次執行儲存過程時使用sp_recompile.

下面討論編譯和重新編譯的細節。

重新編譯儲存過程

更新 SSMS 中的儲存過程並執行呼叫該過程的單獨應用程序。您需要結束正在編輯過程的會話。更改僅在編輯會話中可見,直到它們被送出。

檢查以下連結:

對象“名稱”的定義自編譯後已更改

引用自:https://dba.stackexchange.com/questions/154939