Ошибка генерации SQL Server при репликации слиянием в таблице, которая была удалена - PullRequest
0 голосов
/ 20 августа 2010

Я добавил таблицу tblJoinCustBlastList в реплицированную базу данных слиянием, и теперь я получаю эту ошибку во время репликации:

Сообщения об ошибках:

Сценарий схемы 'if object_id (N' [dbo]. [TblJoinCustBlastlist] ') не является нулевым exec (' ALTER TABLE [dbo]. [TblJoinCustBlastlist] ДОБАВИТЬ КОНСТРАИНТ PK_tblJoinCustBlastlist ПЕРВИЧНЫЙ КЛЮЧЕВЫЙ КЛЮЧ СОСТАВЛЯЕТСЯ (КЛАВИША СОСТОЯНИЯ СОЕДИНЕННЫХ КЛЮЧЕЙ) , IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [ПЕРВИЧНЫЙ]

')' не может быть передано подписчику. (Источник: MSSQL_REPL, Номер ошибки: MSSQL_REPL-2147201001) Получение справки: http://help/MSSQL_REPL-2147201001 В таблице 'tblJoinCustBlastlist' уже определен первичный ключ. (Источник: MSSQLServer, номер ошибки: 1779) Получение справки: http://help/1779 Не удалось создать ограничение. Смотрите предыдущие ошибки. (Источник: MSSQLServer, номер ошибки: 1750) Получение справки: http://help/1750

Все справочные ссылки мертвы. Таблица, которая вызвала сбой репликации (rblJoinCustBlastList), имеет только 3 поля:

JoinID -int- Первичный ключ - не имеет значения

fkCustID - без нулевых значений

fkBlastListID - без нуля

и созданное системой поле Rowguid - uniqueidentifier

Для собственного устранения неполадок я удалил эту таблицу из статей, подлежащих репликации, а затем даже удалил всю таблицу из базы данных. Когда я снова попытался выполнить синхронизацию, чтобы посмотреть, устранена ли ошибка, я получил точно такое же сообщение! Почему это дает мне ошибку в таблице, которая даже не должна реплицироваться и даже удаляется? И как мне это исправить? Пожалуйста, помогите новичку, никто из моих пользователей не может синхронизироваться сейчас ...

Ответы [ 2 ]

0 голосов
/ 20 августа 2010

Я исправил это, удалив таблицу tbljoincustblastlist из подписчика. Я удалил эту таблицу из издателя, но не из подписчика, и она как-то вызвала ошибку, я предполагаю, что она как-то связана с ограничением первичного ключа. гмм!

0 голосов
/ 20 августа 2010

Это не идеальный ответ на вопрос, но самое простое решение, скорее всего, начнется с нового снимка и передаст его хостам.

Когда у вас много узлов репликации, я обнаружил, что Merge часто выполняет циклический перебор, поэтому изменения, добавляемые / удаляемые с серверов, будут вращаться по кругу в течение нескольких недель, если вы не начали с нового снимка, когда сделали изменение схемы.

Ошибки

MSSQL_REPL-2147201001 - Ошибка создания каталогов для временных файлов моментальных снимков 1779 - это сообщение, когда вы пытаетесь добавить первичный ключ в таблицу с одним 1750 - это сообщение, когда вы пытаетесь и не можете создать ограничение

...