Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Merge репликация и пользовательский триггер  [new]
Dmitriy10
Member

Откуда:
Сообщений: 13
Доброго времени суток. Вопрос следующего характера.
Есть репликация слиянием. На подписчике на 1 из таблиц есть триггер, который вызывает ХП.
При вставке данных в таблицу триггер отрабатывает как положено, но вот при удалении репликация не проходит, а заканчивается конфликтом со следующим сообщением:
Удаление строки на "Издатель" не удалось распространить на "Подписчик". Эта ошибка может быть вызвана нарушением ограничения.Невозможно повысить уровень транзакции до распределенной транзакции, так как в этой транзакции присутствует активная точка сохранения.
1 мар 12, 15:04    [12177363]     Ответить | Цитировать Сообщить модератору
 Re: Merge репликация и пользовательский триггер  [new]
Dmitriy10
Member

Откуда:
Сообщений: 13
Dmitriy10,

При отключении триггера репликация проходит нормально. Заранее спасибо за помощь.
1 мар 12, 15:07    [12177378]     Ответить | Цитировать Сообщить модератору
 Re: Merge репликация и пользовательский триггер  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Ну если вы никаких подробностей сообщать не желаете, то единственной рекомендацией будет -- разбирайтесь с вашими триггером и процедурой, уж коли отключение триггера восстанавливает работоспособность репликации.
1 мар 12, 15:46    [12177708]     Ответить | Цитировать Сообщить модератору
 Re: Merge репликация и пользовательский триггер  [new]
Dmitriy10
Member

Откуда:
Сообщений: 13
invm,

При обычном удалении из таблицы(без репликации) триггер отрабатывает на ура
Но при включенном триггере репликация не может удалить запись, возникает конфликт, который я описал выше.
Какие ещё подробности нужны?
1 мар 12, 15:56    [12177822]     Ответить | Цитировать Сообщить модератору
 Re: Merge репликация и пользовательский триггер  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Покурите параметр NOT FOR REPLICATION
Возможно это то, что сделает вас счастливым
1 мар 12, 15:57    [12177847]     Ответить | Цитировать Сообщить модератору
 Re: Merge репликация и пользовательский триггер  [new]
Dmitriy10
Member

Откуда:
Сообщений: 13
вот триггер, забыл уточнить - процедура вызывается на линкед сервере:

create trigger name
on table
for insert, delete, update
as
begin

set nocount on

-- Запуск процедуры
exec [LinkedServer].DB.dbo.ProcName

end
1 мар 12, 15:59    [12177860]     Ответить | Цитировать Сообщить модератору
 Re: Merge репликация и пользовательский триггер  [new]
Dmitriy10
Member

Откуда:
Сообщений: 13
SQL2008,

мне как раз таки нужно, чтобы процедура вызывалась при любых изменениях в таблице (в том числе и при репликации)
1 мар 12, 16:00    [12177877]     Ответить | Цитировать Сообщить модератору
 Re: Merge репликация и пользовательский триггер  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Избавьтесь от работы с линкед сервером в триггере, т.к. именно это приводит к
Dmitriy10
Невозможно повысить уровень транзакции до распределенной транзакции, так как в этой транзакции присутствует активная точка сохранения
1 мар 12, 16:07    [12177949]     Ответить | Цитировать Сообщить модератору
 Re: Merge репликация и пользовательский триггер  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Dmitriy10
SQL2008,

мне как раз таки нужно, чтобы процедура вызывалась при любых изменениях в таблице (в том числе и при репликации)


Тогда разумный совет уже прозвучал

invm
... разбирайтесь с вашими триггером и процедурой...
1 мар 12, 16:14    [12178018]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить