公司采用两套销售系统做销售两套销售系统分别用的是MySQL和MSSQL两种数据库并且在不同的服务器上,现在想让两个数据库中产品信息表双向同步(既当MySQL中产品减少或者增加了多少,MSSQL中也做同样的增减操作),用那些方法能实现,之前已经试过了syncnavigator这个工具,好象它只能单向同步,并且还有错误?

解决方案 »

  1.   

    EXEC master.dbo.sp_addlinkedserver 
    @server = N'MYSQLOS', @srvproduct=N'127.0.0.1', @provider=N'MSDASQL', @provstr=N'Driver={MySQL ODBC 5.1 Driver};Server=127.0.0.1;Database=db;User=user;Password=***;Option=3;'CREATE VIEW [dbo].[View_Order]
    AS
    SELECT * FROM OPENQUERY(MYSQL, 'select *  from order') AS derivedtbl_1 在本地SQL Server 2008 R2中通过上面的代码创建链接数据库和视图,用SQL查询或者视图都能正常访问,当在视图上创建触发器的时候就提示“消息 8197,级别 16,状态 6,过程 Remote_Num,第 1 行
    对象 'View_Order' 不存在,或对此操作无效。” 代码入下CREATE TRIGGER Remote_Num
       ON  View_Order 
       AFTER UPDATE
    AS
    IF UPDATE(isvalid) 
    BEGIN

    declare @o_isvalid nvarchar(1)  --修改之前的
    declare @n_isvalid nvarchar(1)  --修改之后的
    declare @o_id bigint END
    GO 请问这个是代码有问题还是是链接数据库不能做触发器呢?因为触发的动作是由远程的MySQL服务器做的,还有其他方案可以实现当MySQL服务器里数据库数据变化了,这边MSSQL数据库就做一些动作呢
      

  2.   


    有没有 JSP或者是serverlet 同步参考脚本呢