症状
假定您具有 Microsoft SQL Server 2008年服务包 3 (SP3),SQL Server 2008 R2 Service Pack 2 (SP2),SQL Server 2012 Service Pack 2 (SP2),SQL Server 2012年服务包 1(SP1),或在一台计算机上安装 SQL Server 2014年。当调用sp_MScreatemergedynamicsnapshot存储过程来创建动态快照时,您会收到以下错误消息︰
Msg 8115,级别 16 状态 2,过程 sp_MScreatemergedynamicsnapshot 线 182
将表达式转换为数据类型 nvarchar 算术溢出错误。
Msg 20655、 级别 16、 状态 1、 过程 sp_MScreatemergedynamicsnapshot,行 186
该分区的快照进程无法完成。无法从分发数据库中的 MSsnapshot_history 表中检索的最大时间戳信息。确保标准快照处于最新状态并可用。
Msg 20628、 级别 16、 状态 1、 过程 sp_MScreatemergedynamicsnapshot,行 203
未能生成动态快照。
注意:Agent_id值超过 99999 MSdynamicsnapshotjobs表中的时,会出现此问题。
原因
在 SQL Server 中的缺陷会出现此问题。Agent_id的本地变量的类型是一个字符,并且其长度为 5。当 SQL Server 处理分配给INT类型的值,则可能会出现算术溢出。
解决方案
第一次修复该问题的SQL Server累积更新包
对于 SQL Server 2014年累积更新 3/en-us/help/2984923
SQL Server 2012 sp1 的累积更新 11/en-us/help/2975396
SQL Server 2012 sp2 的累积更新 1/en-us/help/2976982
SQL Server 2008 R2 sp2 的累积更新 13/en-us/help/2967540
SQL Server 2008 sp3 的累积更新 17/en-us/help/2958696
SQL Server 的每个新累积更新包含以前的累积更新所包含的所有修补程序和所有安全修补程序。查看 SQL Server 的最新累积更新:
修补程序信息
受支持的修补程序现已从 Microsoft 推出。但是,它旨在纠正本文介绍的问题。它仅应用于正经历此特定问题的系统。
若要解决此问题,请联系 Microsoft 客户支持服务以获取此修复程序。有关 Microsoft 客户支持服务的电话号码和有关支持费用的信息的完整列表,请访问下面的 Microsoft 网站︰
http://support.microsoft.com/contactus/?ws=support注意: 在特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新能够解决您的问题,可能取消的通常情况下收取的电话支持服务费用。照常收取支持费用将应用于其他支持问题和对于特定更新无法解决的问题。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。