0

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

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

+0

Dhivagar: Вы получили ответ, который искали? Если да, не могли бы вы принять его? Если нет, не могли бы вы уточнить, что вы все еще ищете? Обычно, чем больше информации вы предоставляете, тем вероятнее, что это кто-то может вам помочь. – MaasSql

ответ

0

Я не сделал этого некоторое время, но вот удар.

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

--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 

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

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

Удачи.

Смежные вопросы