Репликация SQL-СЕРВЕР

На моем производственном сервере у меня есть репликация, которая работает нормально, у меня есть распределенная база данных, которая имеет 2 подписчика db. Мои данные реплицируются из производственной среды (работают нормально), но пока данные реплицируются в распределенную базу данных на подписчике, возникает ошибка

Err msg =
Подсистема распространения репликации репликации: PRD01-XYZ-VREPL1\REPL01-25 не удалось. Нарушение ограничения PRIMARY KEY «PK_vendors». Не удается вставить повторяющийся ключ в объект «dbo.tabname».


comment
Дивагар: Ты получил ответ, который искал? Если да, не могли бы вы принять его? Если нет, не могли бы вы уточнить, что вы все еще ищете? Обычно, чем больше информации вы предоставляете, тем больше вероятность того, что кто-то сможет вам помочь.   -  person Jeff Maass    schedule 01.07.2010


Ответы (1)


Давненько я этого не делал, но вот удар.

Во-первых, я был бы не против увидеть записи, которые не совпадают, поэтому я бы попробовал что-то вроде этого:

--to be run on the publisher
select pub.*, sub.*
from 
    db_name1.dbo.tabname pub
    JOIN linked_server_to_subscriber.db_name1.dbo.tabname sub
        ON pub.pk = sub.pk
WHERE
    pub.some_field != sub.some_field

Будем надеяться, что для «some_field» есть другой уникальный столбец, или, возможно, dt_entered, или, возможно, rowguid. :).

Наконец, если логика вашей ситуации включает в себя вставку записей в таблицу подписчиков не путем репликации, а тип репликации не слияние, вы вполне можете продолжать сталкиваться с подобными проблемами.

Удачи.

person Jeff Maass    schedule 26.06.2010