Я ошибочно удаляю все строки из таблицы MS SQL 2000, которая используется при репликации слиянием (таблица находится на издателе). Затем я усугубил проблему, используя операцию DTS для извлечения строк из резервной базы данных и повторного заполнения таблицы.
Это создало следующую проблему:
Операция удаления помечала строки для удаления на клиентах, но операция DTS обходит триггеры репликации, поэтому импортированные строки не помечаются для вставки подписчикам. Фактически подписчики теряют данные, хотя они находятся на издателе.
Поэтому я подумал: «Не беспокойтесь», я просто снова удаляю строки, а затем добавляю их корректно с помощью оператора вставки, и они будут помечены для вставки подписчикам.
Это моя проблема:
Я не могу удалить строки DTSed, потому что я получаю «Невозможно вставить строку с повторяющимся ключом в объект« MSmerge_tombstone »с уникальным индексом« uc1MSmerge_tombstone ».» ошибка. Я хотел бы как-то удалить строки из таблицы, минуя триггер репликации слиянием. Это возможно? Я не хочу удалять и повторять репликацию, потому что подписчиками являются более 50 устройств на базе Windows Mobile.
Редактировать: я пробовал команду таблицы усечений. Это приводит к следующей ошибке «Невозможно усечь таблицу xxxx, поскольку она опубликована для репликации»