简体   繁体   中英

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. For this, we use a trigger on the Sql 2000 server that fires a stored procedure on our Sql 2008 server. When trying it from SMSS, I get this message:

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. The linked server objects have the same configuration as on the old server. Here is my DTC configuration. Is there anything else that could go wrong?

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

Google came up with this knowledge base article for me. From your screenshot, it looks like you've got DTC configured right (though I'm skimming, definitely double check it). 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. 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. It is a mystery.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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