Проблемы
Предположим, что вы используете репликацию слиянием, которая выполняется издателем в Microsoft SQL Server 2012 или SQL Server 2012 с пакетом обновления 1 (SP1). После обновления издателя до SQL Server 2012 с пакетом обновления 2 (SP2) вы не сможете перезапустить агент слияния. Кроме того, появляется следующее сообщение об ошибке:
Процессу слияния не удалось выполнить очистку метаданных на основе хранения в базе данных "MergePub". Если эта ошибка не исчезнет, попробуйте увеличить время ожидания запроса для этого процесса или попробуйте уменьшить срок хранения. При устранении неполадок запустите синхронизацию повторно, включив ведение подробного журнала и указав выходной файл для записи.
При выполнении sp_mergemetadataretentioncleanup хранимой процедуры вручную на издателе хранимая процедура завершается сбоем, и появляется следующее сообщение об ошибке:
Сообщение 206, уровень 16, состояние 2, процедура sp_mergemetadataretentioncleanup, 63Operand типа "строка": bigint несовместим с uniqueidentifierMsg 206, уровнем 16, состоянием 2, процедура sp_mergemetadataretentioncleanup, строка 65Operand конфликт типов: int несовместим с uniqueidentifier
Решение
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server.
Накопительное обновление 3 для SQL Server 2012 с пакетом обновления 2 (SP2) /en-us/help/3002049
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Обходное решение
Чтобы обойти эту ошибку, выполните в опубликованной базе данных следующий запрос:if exists (select * from sys.columns sc inner join sys.types st on sc.system_type_id = st.system_type_id where object_id = object_id('dbo.sysmergesubscriptions') and sc.name = 'last_local_recgen' and st.name = 'uniqueidentifier') begin alter table dbo.sysmergesubscriptions drop column last_local_recgen alter table dbo.sysmergesubscriptions add last_local_recgen bigint null end
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".