【问题标题】:Sql Server 2000 trigger that references a Sql Server 2008 database fails引用 Sql Server 2008 数据库的 Sql Server 2000 触发器失败
【发布时间】:2009-04-06 17:09:18
【问题描述】:

我们有一个 Sql Server 2000 数据库应用程序,当某些表发生更改时,它需要更新我们的应用程序 Sql Server 2008 数据库。为此,我们在 Sql 2000 服务器上使用触发器来触发 Sql 2008 服务器上的存储过程。从 SMSS 尝试时,我收到以下消息:

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

我们的应用程序曾经使用 Sql Server 2005 数据库,但本周末我们升级了服务器。链接服务器对象的配置与旧服务器上的相同。这是我的 DTC 配置。还有什么可能出错的地方吗?

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

【问题讨论】:

    标签: sql sql-server windows-server-2008


    【解决方案1】:

    Google 为我想出了this knowledge base article。从您的屏幕截图中,您似乎已经正确配置了 DTC(虽然我只是略读,但一定要仔细检查一下)。你检查你的防火墙设置了吗?

    【讨论】:

    • 是的。允许 DTC 流量,但我们实际上暂时关闭了那台机器上的 Windows 防火墙。 (它没有暴露)
    【解决方案2】:

    事实证明,我们的 Sql 2000 服务器上的相同 DTC 安全配置窗口没有启用任何网络 DTC 访问。这显然适用于我们的旧服务器,但是当我们升级到 Server 2008 和 Sql Server 2008 时,需要在两台服务器上都启用它。这是一个谜。

    【讨论】:

      猜你喜欢
      • 2010-12-17
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 2015-01-31
      • 1970-01-01
      相关资源
      最近更新 更多