--先创建链接服务器
exec sp_addlinkedserver  'srv','','SQLOLEDB','192.168.0.1'
exec sp_addlinkedsrvlogin 'srv','false',null,'sa','******'    --承运公司出库--修改单价update 承运公司出库  set 单价=B.单价 
from 承运公司出库 as A,srv.ztwl.dbo.承运公司出库 as B
where A.运单id in(select 运单id from srv.ztwl.dbo.承运公司出库  where 更新=1) 
错误提示:
服务器: 消息 8501,级别 16,状态 1,行 9
服务器 'YM-0000' 上的 MSDTC 不可用。
服务器: 消息 7391,级别 16,状态 1,行 9
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d01c]。

解决方案 »

  1.   

    查看一下两台机子是否都启动了Distributed Transaction Coordinator服务。
      

  2.   

    肯定一楼大哥所说的问题后,看一下这个贴子,看看是不是有帮助
    http://community.csdn.net/Expert/topic/4874/4874208.xml?temp=.298443
      

  3.   

    Distributed Transaction Coordinator服务
    启动不了,不知为什么?
      

  4.   

    发生错误1068-(依存服务或组无法启动。),此时正在MSDTC服务商执行该服务操作。
      

  5.   

    楼主ping srv能解析到远端的IP地址吗?
    exec sp_addlinkedserver  '[srv的ip地址]','','SQLOLEDB','192.168.0.1'
    exec sp_addlinkedsrvlogin '[srv的ip地址]','false',null,'sa','******'改成这样再试试.
      

  6.   

    别的SQL语句呢格执行,唯独这一条不能执行
      

  7.   

    其它的update语句能执行?只有这一条Update不能执行?
      

  8.   

    exec sp_addlinkedserver  'srv','','SQLOLEDB','192.168.0.1'
    exec sp_addlinkedsrvlogin 'srv','false',null,'sa','******'
    先确认能做基本的查询动作  select top  * from srv.master.dbo.sysobjects
    然后
    启动Distributed Transaction coordinator 
    然后再看看