简体   繁体   English

引用Sql Server 2008数据库的Sql Server 2000触发器失败

[英]Sql Server 2000 trigger that references a Sql Server 2008 database fails

We have a Sql Server 2000 database application that needs to update our applications Sql Server 2008 database when certain tables are changed. 我们有一个Sql Server 2000数据库应用程序,当某些表更改时,需要更新我们的应用程序Sql Server 2008数据库。 For this, we use a trigger on the Sql 2000 server that fires a stored procedure on our Sql 2008 server. 为此,我们在Sql 2000服务器上使用触发器,该触发器在Sql 2008服务器上触发存储过程。 When trying it from SMSS, I get this message: 从SMSS尝试时,出现以下消息:

The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.

Our application used to use a Sql Server 2005 database, but we upgraded servers this weekend. 我们的应用程序以前使用的是Sql Server 2005数据库,但本周末我们升级了服务器。 The linked server objects have the same configuration as on the old server. 链接的服务器对象具有与旧服务器相同的配置。 Here is my DTC configuration. 这是我的DTC配置。 Is there anything else that could go wrong? 还有其他可能出错的地方吗?

dtc configuration http://yourcls.com/dtc-configuration.png dtc配置http://yourcls.com/dtc-configuration.png

Google came up with this knowledge base article for me. Google为我提出了此知识库文章 From your screenshot, it looks like you've got DTC configured right (though I'm skimming, definitely double check it). 从屏幕快照中,您似乎已经正确配置了DTC(尽管我正在浏览,绝对要仔细检查一下)。 Have you checked your firewall settings? 您检查防火墙设置了吗?

It turns out the same DTC security configuration window on our Sql 2000 server did not have any network DTC access enabled. 事实证明,我们的Sql 2000服务器上的同一DTC安全配置窗口没有启用任何网络DTC访问。 This apparently worked just fine with our old server, but when we upgraded to Server 2008 and Sql Server 2008, this needed to be enabled on BOTH servers. 这显然可以与旧服务器配合使用,但是当我们升级到Server 2008和Sql Server 2008时,都需要在两台服务器上都启用它。 It is a mystery. 这是一个谜。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM