啊,这么久才一人顶贴。其实sql2008我也没用过,谢楼上。

解决方案 »

  1.   

    异机触发,本身就不是个很好的选择。
    参考如下文章。SQL Server 2005 创建跨服务器“触发器”http://topic.csdn.net/u/20100610/17/66fadf93-b284-403b-af27-cae49fdbd840.html?94924
      

  2.   

    链接服务器没有试过,个人喜欢用openrowset,不过值得一试。
      

  3.   

    用了链接服务器还是不行,在代码中加入了 SET XACT_ABORT ON 代码服务器: 消息 7391,级别 16,状态 2,过程 tri_insert_on_in_duty,行 28
    无法执行该操作,因为链接服务器 "域名" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务。
    链接服务器"域名"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "没有活动事务。"。
      

  4.   

    http://support.microsoft.com/kb/816701/zh-cn
      

  5.   

    2008没用过
    试下在sql2000 的数据库上面写语句读取2008的然后插入2000可以吗
      

  6.   

    谢sgchen2000,我查看了两台电脑都开启了DTC
      

  7.   

    --找了两台sql20000电脑(同局域网),下面测试可以成功。难道非要我把Sql2008换成2000不成?
    INSERT INTO employee(gh,NAME)
    SELECT 'L10598','SAD'CREATE TRIGGER test ON employee
    AFTER INSERT
    AS
    BEGIN
    SET XACT_ABORT ON
    INSERT INTO openrowset('sqloledb','192.168.0.3';'sa';'PWD','SELECT gh,name FROM check_work..employee')
    SELECT 'L10598','xxx'END
      

  8.   

    RPC呢?最好用DTCPing工具ping一下测试
      

  9.   


    sp_configure 'show advanced options',1
    reconfigure
    sp_configure 'Ad Hoc Distributed Queries',1
    reconfigure with override
      

  10.   

    我在2000和2005之间处理大量数据的导入和导出,
    链接服务器和openrowset的执行效果是一样的。
    两种方法都不支持远程过程调用
    触发器中访问远程服务器和类似调用远程过程,所以会出错。
      

  11.   

    在学,sql,楼主的问题很高级耶
      

  12.   

    既然在sql2000上可以,你可以找sql2008是不是对这部分功能给禁用了,或者换别的方式了。