在同一SQL Server 2005中使用两个数据库集成两个应用程序时会出现此问题。两个应用程序在同一服务器上都有自己的数据库,但我们必须将一些数据从一个数据库传输到另一个数据库。我们正在使用触发器和存储过程来执行此操作。
如果我们使用SQL Server Management Studio将数据插入数据库,则不需要msdtc,但如果我们使用应用程序插入数据,则会收到错误消息,指出未启用DTC。我们无法控制插入数据的应用程序。
我的问题很简单,为什么在使用应用程序插入数据时需要msdtc?
注意:触发器不在数据库之间进行调用只有存储过程
答案 0 :(得分:0)
在很多情况下,人们可能间接使用MSDTC:集群服务器,配置复制,COM +的大部分用法,等等。
但是,正如@MitchWheat在评论中已经指出的那样,只要在单个事务范围内有多个数据库连接,SQL Server 2005(以及Oracle资源管理器)就专门使用MSDTC。 SQL Server 2008中已修复此问题(如果您认为这很不方便)。
在您的情况下,这是客户端,而不是服务器端问题,但通常可以是。