小编典典

链接服务器的SQLNCLI问题。``交易正在进行中''。

sql

我试图执行一个存储过程并将其结果简单地插入一个临时表中,并且我收到以下消息:

由于链接服务器“ MyServerName”的OLE DB提供程序“ SQLNCLI”无法开始分布式事务,因此无法执行该操作。链接服务器“
MyServerName”的OLE DB提供程序“ SQLNCLI”返回消息“没有事务处于活动状态”。

我的查询如下所示:

INSERT INTO #TABLE
EXEC MyServerName.MyDatabase.dbo.MyStoredProcedure Param1, Param2, Param3

确切的列号,名称,不是问题所在。

在两台计算机上都允许并启动了MSDTC,也调用了远程过程。

这些机器不在同一个域中,但是我可以从我的机器上执行远程查询并获得结果。我什至可以执行存储过程并查看其结果,只是不能将其插入另一个表中。

编辑


哦,我忘了提一下,存储过程不会触发任何触发器。它仅将记录插入临时表中,并创建临时表以进行数据处理。


阅读 151

收藏
2021-03-23

共1个答案

小编典典

好吧,经过大量的教程和研究后,我改变了所有我认为对它起作用所必需的配置,但是仍然没有。

今天,由于不间断的故障,我们不得不在开发服务器上强制重新启动电源,而当我们启动服务器时,您猜怎么着?有用!

因此,仅作记录用途,我更改了一些特定的MSDTC配置,将其添加为链接服务器并允许RPC IN和OUT,并将RPC配置更改为“无需验证”。

我记得在某处读过,更改此配置后,即使Windows表示它已经重新启动了该服务,也需要重新启动。

自从更改服务器以来,我已经像两次一样重新启动了服务器,但它仍然无法正常工作。但是像今天一样,在完全关闭然后再打开后,它仍然可以工作!

至于语法,我保持不变。

2021-03-23