我们在SQL Server 2005上有一个针对DB2的链接服务器。 当我们尝试将链接服务器上的简单查询结果集放入临时表时返回此错误。
链接服务器“SOMEDSN”的OLE DB提供程序“MSDASQL”返回消息“[IBM] [CLI驱动程序] SQL0998N在事务或启发式处理期间发生错误。原因代码=”16“.Subsode =”2-8004D026“.SQLSTATE = 58005 ”。 Msg 7391,Level 16,State 2,Line 21 无法执行该操作,因为链接服务器“SOMEDSN”的OLE DB提供程序“MSDASQL”无法开始分布式事务。
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;
Exec工作正常,显示的结果集正确,但只要我们将结果集尝试到临时表中,就会得到错误。
我在这里和其他许多地方搜索并尝试了以下内容。
该表包含很多行。我们需要在DB2端执行查询以根据参数减少结果集。
任何帮助都会被大量占用!
答案 0 :(得分:0)
您是否启动了MSDTC服务(DTC)?
在Windows 2008下:
如果不起作用,请尝试disabling connection pooling。