KB2963404 - 修正:在 SQL Server 2012 或 SQL Server 2014 中,復原會造成資料庫進入可疑模式

套用到
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use)

症狀

請考慮以下案例:

  • 您的資料庫在 Microsoft SQL Server 2012 或 SQL Server 2014 中啟用了快照隔離或讀取認可快照隔離等級。
  • 資料庫包含具有多欄叢集索引的非空資料表。 叢集索引的前置索引鍵設為 NOT Null。
  • 您開始交易,然後在資料表中新增資料行。 此資料行的值已更新。
  • 您可以變更叢集索引的前置索引鍵以允許 NULL 值。
  • 您可以插入叢集索引的前置索引鍵具有 NULL 值的資料列,然後中止交易。

在此案例中,復原會使資料庫變成可疑狀態,而且只能使用 DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS 命令「修復」。 此外,您可能會收到下列錯誤訊息:

注意

Msg 3316, Level 21, State 2, Line 135
復原資料庫 '%.*ls' 中記錄的作業期間,記錄識別碼 %S_LSN 發生錯誤。 找不到該列。 從完整備份還原資料庫,或修復資料庫。

        
      

解決方式

SQL Server 2014 的 Service Pack 資訊

要解決此問題,請取得 SQL Server 2014 的 Service Pack 1。

如需 SQL Server 2014 Service Pack 1 (SP1) 的詳細資訊,請參閱 SQL Server 2014 Service Pack 1 中修正的錯誤。

SQL Server 2012 的 Service Pack 資訊

若要解決此問題,請取得 Microsoft SQL Server 2012 的最新 Service Pack。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2755533 如何取得 SQL Server 2012 的最新版 Service Pack

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。