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

Откуда:
Сообщений: 36
Камрады, нужна помощь! Ситуация следующая:
Есть два слинкованных сервера:
1. MS SQL 2000 (SRV-1C2)
2. MS SQL 2008 (SRV-HOTEL)
В из баз на MS SQL 2008 находится хранимая процедура. Она с успехом выполнятся на прилинкованном MS SQL 2000.

EXEC [SRV-HOTEL].[HMS].[db_pms].[p_1c_export] '20130901','20130901'

Она возвращает данные за определённый период.
При попытке использовать эту процедуру для вставки данных во временную таблицу на MS SQL 2000

INSERT INTO #Temp EXEC [SRV-HOTEL].[HMS].[db_pms].[p_1c_export] '20130901','20130901'

возникает ошибка:

The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.
[OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a].

На MS SQL 2008 MS DTC запущена. Где собака зарыта? Почему не работает запрос?
5 сен 13, 10:50    [14797921]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с MSDTC при вставке с использованием хранимой процедуры  [new]
mike909
Member

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

Настройте MSDTC на SRV-1C2
Проверьте его
begin distributed tran
select top 10 * from [SRV-HOTEL].[HMS].sys.objects
commit tran
5 сен 13, 11:06    [14798021]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с MSDTC при вставке с использованием хранимой процедуры  [new]
StJack
Member

Откуда:
Сообщений: 36
В результате выполнения этого запроса появляется та же самая ошибка:

The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.
[OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a].

А как настроить MSDTC на SRV-1C2? В свойствах MS SQL 2000 стоит, что он запускается автоматически. Как проверить, что он вообще запущен?
5 сен 13, 11:16    [14798093]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с MSDTC при вставке с использованием хранимой процедуры  [new]
Glory
Member

Откуда:
Сообщений: 104760
Запустить MSDTC - это мало
https://www.sql.ru/articles/mssql/2005/083101debuggingmsdtcissues.shtml
http://support.microsoft.com/?id=250367
5 сен 13, 11:26    [14798168]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить