该伙伴事务管理器已经禁止了它对远程/网络事务的支持。

「已注销」 2014-05-06 04:37:05
链接服务器"223"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "该伙伴事务管理器已经禁止了它对远程/网络事务的支持。"。
消息 7391,级别 16,状态 2,过程 Tg_workinfoupdate,第 31 行
无法执行该操作,因为链接服务器 "223" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务。

我在触发器中写啦连接服务器的相关项,代码如下:


if isnull((select count(1) from [223].hg.dbo.cus_fielddata where id = @id and scopeid = 3),0) = 0
begin
insert into [223].hg.dbo.cus_fielddata(scope,scopeid,id,field9)
values('HrmCustomFieldByInfoType','3',@id,@fyid)
end
else
begin

update [223].hg.dbo.cus_fielddata
set field9 = @fyid
where ID = @id
and SCOPEid = 3
end


只是部分涉及到链接服务器的代码

如果我只是将下面的单独拿出来执行,那么是没问题的,但是只要是放到触发器中执行就报以上的错误

update [223].hg.dbo.cus_fielddata
set field9 = @fyid
where ID = @id
and SCOPEid = 3


网上找点方法也试过,还是没解决,求助高手解决
...全文
871 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2014-05-08
  • 打赏
  • 举报
回复
引用 7 楼 SmithLiu328 的回复:
不建议在Trigger中用分布式事务。
必须得这么做,因为是两个软件做关联,我需要在修改某个表的某个字段的时候,更新另一个数据库的表的相关值,而且两个库不在同一个服务器上,而且程序又不是我开发的……
KevinLiu 2014-05-07
  • 打赏
  • 举报
回复
不建议在Trigger中用分布式事务。
黄_瓜 2014-05-06
  • 打赏
  • 举报
回复
那帮不了你更多,因为分布式事物缺陷明显,我都没有用过。
「已注销」 2014-05-06
  • 打赏
  • 举报
回复
引用 2 楼 Beirut 的回复:
分布式事物的问题,试试下面的方法 验证分布式事务协调器服务在服务器上运行 转到管理工具>服务 打开“分布式事务协调器”服务,如果它没有运行 如果再运行: 转到管理工具>组件服务 在左侧导航树中,转到组件服务>计算机>我的电脑(你可能需要双击并等待一些节点需要时间来展开) 右键点击我的电脑 - 选择属性 选择“MSDTC”选项卡 确保所有的MSDTC设置为每SDL Tridion的安装文件 如果所有这些设置按预期再进行下列步骤(请不要问的逻辑,但是这是我如何能够摆脱类似错误的): 卸载MSDTC 重新启动服务器 重新安装MSDTC和做配置按照SDL Tridion的安装文件 重新启动服务器 但愿它应该被现在的工作
打开“分布式事务协调器”服务,如果它没有运行 此服务已运行,最开始无法运行,已经在网上找到解决方案 右键点击我的电脑 - 选择属性 选择“MSDTC”选项卡 此处的设置已经按照网上的步骤,一步步的设置完成 卸载MSDTC 这条条件不允许,在客户服务器上,而不是自己的服务器
「已注销」 2014-05-06
  • 打赏
  • 举报
回复
引用 2 楼 Beirut 的回复:
分布式事物的问题,试试下面的方法 验证分布式事务协调器服务在服务器上运行 转到管理工具>服务 打开“分布式事务协调器”服务,如果它没有运行 如果再运行: 转到管理工具>组件服务 在左侧导航树中,转到组件服务>计算机>我的电脑(你可能需要双击并等待一些节点需要时间来展开) 右键点击我的电脑 - 选择属性 选择“MSDTC”选项卡 确保所有的MSDTC设置为每SDL Tridion的安装文件 如果所有这些设置按预期再进行下列步骤(请不要问的逻辑,但是这是我如何能够摆脱类似错误的): 卸载MSDTC 重新启动服务器 重新安装MSDTC和做配置按照SDL Tridion的安装文件 重新启动服务器 但愿它应该被现在的工作
打开“分布式事务协调器”服务,如果它没有运行 此服务已运行,最开始无法运行,已经在网上找到解决方案 右键点击我的电脑 - 选择属性 选择“MSDTC”选项卡
「已注销」 2014-05-06
  • 打赏
  • 举报
回复
引用 1 楼 HEROWANG 的回复:
防火墙关掉试试
两边的防火墙都是关闭的,没有打开
黄_瓜 2014-05-06
  • 打赏
  • 举报
回复
分布式事物的问题,试试下面的方法 验证分布式事务协调器服务在服务器上运行 转到管理工具>服务 打开“分布式事务协调器”服务,如果它没有运行 如果再运行: 转到管理工具>组件服务 在左侧导航树中,转到组件服务>计算机>我的电脑(你可能需要双击并等待一些节点需要时间来展开) 右键点击我的电脑 - 选择属性 选择“MSDTC”选项卡 确保所有的MSDTC设置为每SDL Tridion的安装文件 如果所有这些设置按预期再进行下列步骤(请不要问的逻辑,但是这是我如何能够摆脱类似错误的): 卸载MSDTC 重新启动服务器 重新安装MSDTC和做配置按照SDL Tridion的安装文件 重新启动服务器 但愿它应该被现在的工作
  • 打赏
  • 举报
回复
防火墙关掉试试

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧