2015-03-12 3 views
1

Я работал над репликацией слияния на SQL SERVER 2012. У меня есть один центральный сервер с публикацией и дистрибутивом, настроенным на том же компьютере. У меня есть еще три машины с SQL SERVER 2012 в качестве подписчиков. Репликация работает нормально, но я бег в следующей ошибку на всех абонентахОшибка репликации слияния у подписчиков

Схемы сценарий

if exists (select * from syscolumns where name = N'TransporterID' and id = object_id(N'[dbo].[Transporter]')) if object_id(N'[dbo].[Transporter]') is not null exec('ALTER TABLE [dbo].[Transporter] DROP COLUMN TransporterID')' could not be propagated to the subscriber. 

Благодарность

ответ

0

Это, как представляется, не удалось изменить схему. Вы можете либо повторно инициализировать подписки, либо пропустить изменение схемы. Если повторная инициализация не является вариантом, вы можете пропустить изменение схемы так.

Вы можете найти изменение схемы, которое вы хотели бы пропустить в таблице sysmergeschemachange. Другой способ найти изменение схемы является выполнение sp_enumeratependingschemachanges:

EXEC sp_enumeratependingschemachanges 
    @publication = 'MyPublicationName' 

Получить schemaversion из набора результатов, а затем пропустить изменение схемы, выполнив sp_markpendingschemachange. Например, если схема составляет 22:

EXEC sp_markpendingschemachange 
    @publication = 'MyPublicationName', 
    @schemaversion = 22 
    @status = 'skipped' 
+0

Спасибо, Брэндон. Просто выполнил «EXEC sp_enumeratependingschemachanges @publication = 'MyPublicationName», и таблицы ничего не возвращают. Стол пуст. Я дистанционно вхожу в систему с подписчиком и вижу ту же ошибку. –

+0

Вы выполнили его в издательстве? –

+0

есть. Просто сделал. и тот же результат. Он пуст. –