徵狀
假設您有一個資料表,其中包含 Microsoft SQL Server 2012 中的 FILESTREAM 欄和 LOB 資料行。 當您除去 LOB 資料行,並嘗試重建現有的叢集索引或建立新的叢集索引時,您會收到下列系統斷言錯誤訊息:
<日期> <時間> Spid<ID> 錯誤:17066、嚴重性:16、State: 1. <日期> <> spid> <0 ID> SQL Server 斷言: File: <<FilePath> \longrec.inl>,line = 1318 失敗斷言 = ' outBufLen >= offsetof (InRowContent,m_varBlobCol) + inBufLen "。 此錯誤可能是與時間有關的。 如果在重新執行語句後發生錯誤,請使用 DBCC CHECKDB 來檢查資料庫的結構完整性,或重新開機伺服器,以確保記憶體中的資料結構未損毀。 <日期> <時間> Spid<ID> 錯誤:3624、嚴重性:20、State: 1. <日期> <時間> spid> <0 ID> 系統斷言檢查失敗。 如需詳細資訊,請參閱 SQL Server 錯誤記錄。 通常,宣告失敗是由軟體錯誤或資料損毀所導致。 若要檢查資料庫是否損毀,請考慮執行 DBCC CHECKDB。 如果您同意在安裝期間將轉儲傳送至 Microsoft,則會將迷你轉儲傳送至 Microsoft。 您可以從 Microsoft 最新 Service Pack 中的 Microsoft 取得更新,或從技術支援取得 QFE。
解決方案
此問題最初是在 SQL Server 的後續累積更新中修正。
SQL Server 2012 SP2 累積更新6 /en-us/help/3052468
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。