2013-02-26 2 views
0

У нас есть связанный сервер с DB2 на SQL Server 2005. Когда мы попытались поставить простой набор результатов запроса из связанного раздела в временную таблицу, верните это ошибка.Ошибка связанного сервера SQL Server 2005 при вставке результатов в таблицу Temp

Поставщик OLE DB «MSDASQL» для связанного сервера «SOMEDSN» возвратил сообщение «[IBM] [драйвер CLI] SQL0998N Ошибка произошла во время транзакции или эвристической обработки. Код причины =« 16 ». Subcode =« 2-8004D026 ». SQLSTATE = 58005 ". Msg 7391, уровень 16, состояние 2, строка 21 Операция не может быть выполнена, поскольку поставщик OLE DB «MSDASQL» для связанного сервера «SOMEDSN» не смог начать распределенную транзакцию.

DECLARE @FilterCode varchar(20); 
Set @FilterCode = '11122'; 

Create Table #TmpTable (
    Id Int 
) 

Insert Into #TmpTable 
EXEC ('Select A.Id From SCM1.DB2TBL1 A Where A.FilterCode = ?', @FilterCode) At SOMEDSN; 

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

Я искал здесь и в других местах и ​​попытался выполнить следующие действия.

  1. sp_configure «удаленного прок транс», 0
  2. На Linked Свойства сервера> Параметры сервера установите «Включить продвижение распределенных транзакций» ложь. Я не видел этого варианта.
  3. Свойства Linked Server> RPC, RPC и дистрибьютор установлены в значение TRUE
  4. Используется Openquery, но он не может использовать динамические параметры SQL или pass.

Таблица содержит очень много строк. Нам нужно выполнить запрос на стороне DB2, чтобы уменьшить набор результатов, основанный на параметре.

Любая помощь была бы очень выгодной!

ответ

0

Вы начали службу MSDTC (DTC)?

В Windows 2008:

  • От административного Инструменты-> Компонент услуги-> Компьютеры-> Мой компьютер : Локальная DTC. Щелкните правой кнопкой мыши Свойства, перейдите на вкладку MSDTC и выберите «Конфигурация безопасности».
  • Включить флажок «Доступ к сети dtc» и «Разрешить исходящие».
  • Включить флажок для "No Authentication Required"

Если это не сработает, попробуйте disabling connection pooling.

+0

Спасибо! Мы попробуем это завтра с нашим администратором баз данных. – user2008421

Смежные вопросы