Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Транзакционная репликация передает данные подписчику как Delete + Insert вместо Update  [new]
Гость886655
Guest
Добрый день, знатоки!
Столкнулся с проблемой в репликации транзакциями:
Таблица t1 реплицируется с издателя на подписчик. Таблица t2 в реплике не участвует, а используется в качестве источника данных для обновления таблицы t1 на издателе. Их структуры идентичны. При выполнении на издателе запроса вида:
update t1
set Field = t2.Field
from t1
join t2 on t1.ID = t1.ID

профайлер фиксирует на подписчике выполнение процедур удаления dbo.sp_MSdel_dbot1 для всех записей таблицы t1, а затем вставку dbo.sp_MSins_dbot1 новых значений. На таблицу t1 по внешним ключам ссылаются другие таблицы, что естественно в данном случае ведет к ошибкам "The DELETE statement conflicted with the REFERENCE constraint..." и реплика падает.

Почему запрос на изменение данных репликация заменяет действиями удаления и вставки? Возможно ли решить эту задачу не удаляя внешних ключей на подписчике?

Спасибо.
11 апр 13, 10:31    [14165614]     Ответить | Цитировать Сообщить модератору
 Re: Транзакционная репликация передает данные подписчику как Delete + Insert вместо Update  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
Это штатное, в некоторых случаях, поведение. Навесьте на подписчике not for replication на FK.
11 апр 13, 10:37    [14165657]     Ответить | Цитировать Сообщить модератору
 Re: Транзакционная репликация передает данные подписчику как Delete + Insert вместо Update  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
UPDATE Statements May be Replicated as DELETE/INSERT Pairs
11 апр 13, 10:42    [14165690]     Ответить | Цитировать Сообщить модератору
 Re: Транзакционная репликация передает данные подписчику как Delete + Insert вместо Update  [new]
Гость886655
Guest
invm,

Спасибо, теперь много ясно. not for replication пока хватает, в триггеры репликации лезть желания нет)
11 апр 13, 11:42    [14166106]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить