各位大哥,小弟遇到个问题:
写的程序,更新A数据库里面的A1表,然后B数据库里面的B1表自动更新!A1表和B1表的结构完全一样的A数据库和B数据库在同一内网,A是在公网上的一台主机,B是内网用户使用的OA系统主机!怎么A1表上写触发器呢?各位帮帮忙!!谢谢了先!

解决方案 »

  1.   

    http://topic.csdn.net/u/20081124/10/674b04e5-c10b-44de-837b-647a01a992b3.html
      

  2.   

    在查询分析器里面:
    exec   sp_addlinkedserver     'aieehao2', '', 'SQLOLEDB', 'x.x.x.x' 
    exec   sp_addlinkedsrvlogin   'aieehao2', 'false',null, 'x', 'x' 
    go 执行成功
    select * from aieehao2.xxx.dbo.table1也能正确执行了但是触发:
    (在本地数据库AA里面的table上写的触发)
    CREATE trigger tt_test on table
    for insert
    as
    set  XACT_ABORT on
    insert into aieehao2.Aiee.dbo.Table1 (fid) select fid from inserted
    set  XACT_ABORT off检查语法什么的都通过,但是在table添加记录的时候出错:该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。怎么处理啊?
      

  3.   

    该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式
    ---------------
    简单的链接和触发为什么不行呢?还要分步式???
      

  4.   

    简单的链接?
    说真的,我对MSSQL并不是很了解,是为了实现这个效果,才来研究这东西! 我不知道还有没有其它解决方案,我是通过程序,来更新网上一台主机上的SQL数据库,SQL数据库服务器所在的内网还有一台我们的主机,但是这是台服务器是做OA系统的考虑到安全因素,是不放在公网上的,,无法通过程序直接更新不在公网上的服务器,只能先更新公网上那台,再通过触发,同步更新不在公网上那台做OA系统的SQL服务器
    我是不是走了弯路?还有啥更简单的方法?