症狀
假設電腦上已安裝 Microsoft SQL Server 2008 Service Pack 3 (SP3) 、SQL Server 2008 R2 Service Pack 2 (SP2) 、SQL Server 2012 Service Pack 2 (SP2) 、SQL Server 2012 Service Pack 1 (SP1) 或 SQL Server 2014。 當您呼叫 sp_MScreatemergedynamicsnapshot 預存程序來建立動態快照集時,您會收到下列錯誤訊息:
注意
Msg 8115, Level 16, State 2, Procedure sp_MScreatemergedynamicsnapshot, line 182
將運算式轉換成資料類型 nvarchar 時發生算術溢位錯誤。
Msg 20655, Level 16, State 1, Procedure sp_MScreatemergedynamicsnapshot, Line 186
分割的快照程序無法完成。 無法從分散資料庫的 MSsnapshot_history 資料表擷取時間戳記資訊上限。 確保標準快照是最新且可用的。
Msg 20628, Level 16, State 1, Procedure sp_MScreatemergedynamicsnapshot, Line 203
無法產生動態快照。
注意:當 MSdynamicsnapshotjobs 資料表中的 agent_id 值超過 99,999 時,就會發生此問題。
原因
發生這個問題的原因是 SQL Server 中的問題。 agent_id 的局部變數類型為 char,長度為 5。 當 SQL Server 處理指派給 INT 類型的值時,可能會發生算術溢位。
解決方式
此問題已先在下列 SQL Server 累積更新中修正。
SQL Server 2014 累積更新 3 /zh-tw/help/2984923
SQL Server 2012 SP1 的累積更新 11 /zh-tw/help/2975396
SQL Server 2012 SP2 的累積更新 1 /zh-tw/help/2976982
SQL Server 2008 R2 SP2 的累積更新 13 /zh-tw/help/2967540
適用於 SQL Server 2008 SP3 的累積更新 17 /zh-tw/help/2958696
關於 SQL Server 的累積更新
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:
- 適用於 SQL Server 2014 的最新累積更新
- 適用於 SQL Server 2012 SP1 的最新累積更新
- 適用於 SQL Server 2012 SP2 的最新累積更新
- 適用於 SQL Server 2008 R2 SP2 的最新累積更新
- SQL Server 2008 SP3 的最新累積更新
Hotfix 資訊
Microsoft 現已提供支援的 Hotfix。 但是,它僅旨在更正本文描述的問題。 僅將其套用至發生此特定問題的系統。
若要解決此問題,請連絡 Microsoft 客戶支援服務以取得 Hotfix。 如需 Microsoft 客戶支援服務的完整電話號碼清單以及支援費用的相關資訊,請造訪下列 Microsoft 網站:
/contactus/?ws=support附註 在某些特殊情況下,如果 Microsoft 支援服務工程師認為某特定更新程式可以解決您的問題時,可能就不會收取一般因支援電話所產生的費用。 一般來說,如果有所描述之特定更新無法解決的其他支援問題,才會收取支援費用。
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。