Симптомы
Предположим, что имеется Пакет обновления 3 (SP3) для SQL Server 2008, Пакет обновления 2 (SP2) для SQL Server 2008 R2, Пакет обновления 2 (SP2) для SQL Server 2012, SQL Server 2012 Пакет обновления 1 (SP1) или 2014 SQL Server установлены на компьютере. При вызове sp_MScreatemergedynamicsnapshot хранимые процедуры для создания динамического моментального снимка, появляется следующее сообщение об ошибке:
Сообщение 8115, уровень 16, состояние 2, процедура sp_MScreatemergedynamicsnapshot, 182 строки
Арифметическое переполнение при преобразовании выражения в тип данных nvarchar.
Сообщение 20655, уровень 16, состояние 1, процедура sp_MScreatemergedynamicsnapshot, 186 строки
Не удается завершить обработку секционированного моментального снимка. Не удалось получить сведения о максимальной временной метке из таблицы MSsnapshot_history в базе данных распространителя. Убедитесь, что стандартный моментальный снимок является актуальным и доступны.
Сообщение 20628, уровень 16, состояние 1, процедура sp_MScreatemergedynamicsnapshot, 203 строки
Не удалось сформировать динамический моментальный снимок.
Примечание. Эта проблема возникает, когда значение agent_id превышает более 99999 в таблице MSdynamicsnapshotjobs .
Причина
Эта проблема возникает из-за дефекта в SQL Server. Тип локальной переменной для agent_id char, а его длина равна 5. Арифметическое переполнение возникает, когда SQL Server обрабатывает значение, которое присваивается тип INT .
Решение
Сначала проблема была исправлена в следующем накопительном обновлении SQL Server.
Накопительного обновления 3 для SQL Server 2014 г/en-us/help/2984923
Накопительное обновление для SQL Server 2012 SP1 11/en-us/help/2975396
Накопительное обновление 1 для пакета обновления 2 для SQL Server 2012/en-us/help/2976982
13 накопительного обновления для SQL Server 2008 R2 с пакетом обновления 2/en-us/help/2967540
Накопительное обновление для SQL Server 2008 с пакетом обновления 3 17/en-us/help/2958696
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и все исправления безопасности, входившие в состав предыдущего накопительного обновления. Извлечь последние накопительные обновления для SQL Server:
-
Последнее накопительное обновление для SQL Server 2012 с пакетом обновления 1
-
Последнее накопительное обновление для SQL Server 2012 с пакетом обновления 2
-
Последнее накопительное обновление для SQL Server 2008 R2 с пакетом обновления 2
-
Последнее накопительное обновление для SQL Server 2008 с пакетом обновления 3
Сведения об исправлении
Исправление от корпорации Майкрософт доступно. Тем не менее оно предназначено только для устранения проблемы, указанной в данной статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка.
Чтобы устранить эту проблему, обратитесь в службу поддержки пользователей Майкрософт для получения исправления. Полный список телефонов службы поддержки клиентов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-сайт корпорации Майкрософт:
http://support.microsoft.com/contactus/?ws=supportПримечание. В особых случаях оплата, предусмотренная за обращение в службу поддержки может быть отменена, если специалист службы технической поддержки Майкрософт определит, что обновление будет решением проблемы. Затраты на обычные услуги службы поддержки будут применяться к дополнительным вопросам и проблемам, которые не охватываются конкретным обновлением.
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".