Applies ToSQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

徵狀

請試想下列案例:

  • 您可以在 Microsoft SQL Server 2014 中啟用 AlwaysOn 可用性群組功能。

  • AlwaysOn 資料庫具有公共語言執行時間(CLR)使用者定義的資料類型(UDT)。 此外,一個以上的資料庫中也會有相同的 CLR UDT。

  • 您執行的查詢涉及多個具有 CLR UDT 的資料庫。

在這種情況下,次要複本中發生存取違例錯誤,且 SQL Server 實例在 SQL Server 錯誤記錄中使用下列訊息當機:

2015-02-17 13:07: 36.85 spid27s 在 VLR 處理期間在 commit 期間處理期間,因例外狀況2905而關閉資料庫。 2015-02-17 (3449,嚴重性:21,State: spid27s-02-17 13:07: 1.2015 36.85 SQL Server 必須關閉,才能復原資料庫(資料庫 ID 2)。 資料庫是無法關閉或系統資料庫的使用者資料庫。 重新開機 SQL Server。 如果資料庫無法在其他啟動之後復原,請修復或還原資料庫。

此外,您會在次要複本資料庫中收到下列錯誤訊息,直到您重新開機 SQL Server 之後,才會發生此錯誤:

Msg 3961、Level 16、State 1、Line 3Snapshot 隔離事務在資料庫 ' <DatabaseName>」中失敗,因為該語句所存取的物件已由另一個併發事務中的 DDL 語句所修改,自此事務開始之後。 因為中繼資料沒有版本控制,所以是不允許的。 如果使用快照隔離混合,則對中繼資料的併發更新可能會造成不一致的情況。

解決方案

累積更新資訊

此問題最初是在 SQL Server 的後續累積更新中修正。

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 我們建議您下載並安裝最新的 SQL Server 累積更新:

更新資訊若要解決此問題,請套用更新 KB 3043788:適用于 SQL Server 2014 的隨選熱修復程式更新套件

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。