Как отключить отслеживание операций удаления для статей публикации слиянием (программирование репликации на языке Transact-SQL)
Примечание |
---|
В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. |
По умолчанию репликация слиянием производит синхронизацию команд DELETE между издателем и подписчиком. Репликация слиянием позволяет извлекать строки из базы данных подписки даже в том случае, если они были удалены из публикации (и наоборот). При создании новой статьи можно отключить выполнение команд DELETE программным путем, либо сделать это позже с помощью хранимых процедур репликации.
Важно! |
---|
Включение этой функции приведет к потере конвергенции, то есть возникнет несоответствие данных, содержащихся на подписчике и на издателе. Потребуется реализация собственного механизма очистки удаленных строк. |
Отключение обработки команд удаления для новой статьи слияния
В базе данных публикации на издателе, выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_addmergearticle (Transact-SQL)). В параметре @delete_tracking укажите значение false. Дополнительные сведения см. в разделе Как определить статью (программирование репликации на языке Transact-SQL).
Примечание Если исходная таблица для статьи уже опубликована в другой публикации, значение delete_tracking должно быть одинаковым для обеих статей.
Отключение обработки команд удаления для существующих статей слияния
Чтобы определить, включена ли компенсация ошибок для статьи, выполните хранимую процедуру sp_helpmergearticle (Transact-SQL) и в результирующем наборе проверьте значение параметра delete_tracking. Если это значение равно 0, то команды удаления уже не обрабатываются.
Если на шаге 1 получено значение 1, то в базе данных публикации на издателе необходимо выполнить хранимую процедуру sp_changemergearticle (Transact-SQL). В параметре @property укажите значение delete_tracking, а в параметре @value — значение false.
Примечание Если исходная таблица для статьи уже опубликована в другой публикации, значение delete_tracking должно быть одинаковым для обеих статей.
См. также