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

Откуда: Москва
Сообщений: 311
Всех приветствую!

Вопрос следующего характера.

Есть сервер1, есть сервер2 (на нем крутится Диасофт).

Пишем с сервера1 конструкцию вида:

begin tran

Exec [dias10].work5nt.dbo.Dealtransact_Delete @DealTransactID = 1000

rollback


Получаем ошибку:


Сообщение 627, уровень 16, состояние 1, процедура DealTransact_Delete, строка 806
Cannot use SAVE TRANSACTION within a distributed transaction.
SQLINFO CLEAR

Смотрел в интернете, искал по форуму, но в итоге как решить эту проблеме не нашел.

Опытные люди, подскажите что нужно сделать?

Спасибо.
26 сен 13, 15:23    [14888077]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server с главного + distributed transaction  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
А что непонятно из сообщения из ошибки? Если просто вызов удаленной хп, то уберите инструкции управлениями транзакциями.
26 сен 13, 15:26    [14888101]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server с главного + distributed transaction  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Hamber
Cannot use SAVE TRANSACTION within a distributed transaction.
Опытные люди, подскажите что нужно сделать?

Либо убрать точку сохранения из процедуры.
Либо не вызывать процедуру в распределённой транзакции.

Ваш КО.
26 сен 13, 15:28    [14888106]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server с главного + distributed transaction  [new]
Hamber
Member

Откуда: Москва
Сообщений: 311
Нужно вызывать внутри процедуры т.к. до этого делаются некие манипуляцию по удалению документов. После этого нужно удалить документ на удаленном сервере. В случае чего откатить всё.

Либо убрать точку сохранения из процедуры.
Что убрать?

Я привел весь пример:

begin tran

DELETE from table
where id=100

Exec [dias10].work5nt.dbo.Dealtransact_Delete @DealTransactID = 1000

rollback


Это весь кусок процедуры. Никаких SAVE нету.
26 сен 13, 15:34    [14888149]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server с главного + distributed transaction  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Hamber
Это весь кусок процедуры. Никаких SAVE нету.


Сообщение 627, уровень 16, состояние 1, процедура DealTransact_Delete, строка 806
Cannot use SAVE TRANSACTION within a distributed transaction.
26 сен 13, 15:37    [14888170]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server с главного + distributed transaction  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Hamber
Либо убрать точку сохранения из процедуры.
Что убрать?

Точка сохранения — это инструкция SAVE TRANSACTION.
Или вы не о том?

Hamber
Я привел весь пример:

begin tran

DELETE from table
where id=100

Exec [dias10].work5nt.dbo.Dealtransact_Delete @DealTransactID = 1000

rollback


Это весь кусок процедуры. Никаких SAVE нету.

В первом посте ничего не говорилось о локальной процедуре. Там фигурировала "конструкция вида". Я, например, подумал, что это просто батч. Процедура была упомянута лишь одна — [dias10].work5nt.dbo.Dealtransact_Delete. К ней и относилось моё сообщение.
26 сен 13, 15:43    [14888205]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server с главного + distributed transaction  [new]
Hamber
Member

Откуда: Москва
Сообщений: 311
Как быть, если невозможно править ту удаленную процедуру?

Можно ли какими-нибудь настройками, решить эту проблему?

Или только переписать ту процедуру без SAVE TRAN?
26 сен 13, 15:50    [14888263]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server с главного + distributed transaction  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Hamber
Или только переписать ту процедуру без SAVE TRAN?


Да.
26 сен 13, 16:17    [14888452]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить