subscritption端想办法吧
数据都 replication 过去自己修改 sp_MSins/upd/del 这几个存储过程,那就成了你想怎么玩都行了吧?

解决方案 »

  1.   

    谢谢邹建的回复。
    增加一个计算列的方法不错。
    可惜,publication端的数据结构不能动。
    而且新增cust记录的时候,客户那里的application是先插记录到cust表,然后把新生成的custid插到group表生成一条默认记录,group.type ='CA'. 所以在sp_MSins_Cust等于无效,因为在insert的时候group.type !='CA'。  只有在客户application编辑该customer记录的客户组时,group表中相应custid记录的group.type的值改为'AC'。sp_MSupd_Group才知道可以同步客户,如果在subscritption端的sp_MSupd_Group里写读取publication端的数据有涉及权限等问题,很麻烦,没成功(要先建linked server...)。
      

  2.   

    我想请教一下邹建,
    用SSIS能否实现transactional replication的效果?
    就是特别要track update,delete.
    或则我直接写存储过程放到job里每分钟执行也可以。有什么方法判断只同步数据源中被新增,修改,删除的记录?
      

  3.   

    ssis 是定时调度的,而且不好和你的数据变化结合起来(因为你不能修改源表结构,意味着你不能设置标志, 这样比较难判断数据是否已经同步过)如果考虑放弃 SSIS, 我建议使用触发器+Service Broker, 这样容易捕获数据变更,也容易控制那些数据要同步,而 Serivces Broker 是异步的,在触发器中调用不会对你的业务运行造成多少性能的影响,同时Services Broker可以保证数据到达目的端(有网络问题也不用担心,它会自动重试),唯一的缺点是实时程度不可控制(但一般来说,没有网络问题的话,消息会及时到达)