链接服务器SQLNCLI问题&引用;“没有活动的交易”;
我试图执行一个存储过程,并简单地将其结果插入一个临时表中,我得到以下消息: 无法执行该操作,因为OLE DB提供程序“SQLNCLI” 对于链接服务器,“MyServerName”无法开始分布式访问 交易链接服务器的OLE DB提供程序“SQLNCLI” “MyServerName”返回消息“没有活动的事务” 我的查询如下所示:链接服务器SQLNCLI问题&引用;“没有活动的交易”;,sql,sql-server,sql-server-2005,linked-server,sqlncli,Sql,Sql Server,Sql Server 2005,Linked Server,Sqlncli,我试图执行一个存储过程,并简单地将其结果插入一个临时表中,我得到以下消息: 无法执行该操作,因为OLE DB提供程序“SQLNCLI” 对于链接服务器,“MyServerName”无法开始分布式访问 交易链接服务器的OLE DB提供程序“SQLNCLI” “MyServerName”返回消息“没有活动的事务” 我的查询如下所示: INSERT INTO #TABLE EXEC MyServerName.MyDatabase.dbo.MyStoredProcedure Param1, Param2
INSERT INTO #TABLE
EXEC MyServerName.MyDatabase.dbo.MyStoredProcedure Param1, Param2, Param3
准确的列号、名称,问题不在于结果
两台计算机都允许并启动MSDTC,还可以远程过程调用
这些机器不在同一个域中,但我可以从我的机器执行远程查询并获得结果。我甚至可以执行存储过程并查看其结果,只是无法将其插入另一个表中
编辑
哦,我忘了提一下,存储过程不会触发任何触发器。它只在临时表中插入记录,而临时表是它自己创建用于数据处理的。您尝试过使用openquery吗
insert into table select * from openquery(myservername, 'exec mydatabase.dbo.mystoredproc param1, param2, param3')
好吧,在阅读了大量教程并对其进行了大量研究之后,我已经更改了所有我认为它工作所必需的配置,但它仍然没有 今天,我们不得不在开发服务器上强制重新启动电源,因为一个错误的禁止中断,当我们启动服务器时,你猜怎么着?它起作用了 因此,为了记录在案,我更改了一些特定的MSDTC配置,将其添加为链接服务器并允许RPC进出,并更改了“无需身份验证”之类的RPC配置 我记得在某个地方读到,在您更改此配置后,需要重新启动,尽管Windows说它已经重新启动了服务 我重新启动了我的服务器,就像。。。自从我换了两次,它还是不起作用。但就像今天一样,在完全关闭和打开之后,它工作了
至于语法,我保持不变。您还必须在IP网络配置中检查DNS名称解析 例如,您有一个名为server-a.mydomain.com的服务器和另一个名为server-b.otherdomain.com的服务器,登录服务器-a并执行“ping server-b”(不带域) 如果它响应“Ping请求找不到主机服务器-b。请检查名称并重试。”这就是问题所在 转到控制面板>网络连接>在网卡中单击鼠标右键>属性>Internet协议>属性>高级>DNS>按顺序追加此DNS后缀。 在这里添加本地域:mydomain.com,然后添加远程域:otherdomain.com 单击“确定”直到退出 现在,如果您执行“ping server-b”,它应该会返回如下内容: ping server-b.otherdomain.com[192.168.1.2]和32字节的数据: 来自192.168.1.2的回复:字节=32时间=12毫秒TTL=64来自的回复 192.168.1.2:字节=32时间=9ms TTL=64
现在再次尝试执行分布式事务。我有幸在链接服务器连接的两侧安全地重新启动SQL Server服务。我不必重新启动计算机。从MSDN文档:()在SQL Server 2000及更高版本中,OPENQUERY不能用于在链接服务器上执行扩展存储过程。但是,可以使用由四部分组成的名称在链接服务器上执行扩展存储过程。例如:EXEC SeattleSales.master.dbo.xp\msveroriginal poster没有具体说明它是扩展存储过程还是常规存储过程。