zoukankan      html  css  js  c++  java
  • JOB+MERGE 跨服务器同步数据

    为了解决单服务器压力,将库分服务器部署,但是原来用触发器实现的表数据同步就实现不了了。
    因为总监老大不允许 开启分布式事务(MSDTC),我又不想为了一个几千行的基础数据做复制订阅。
    于是乎决定用 JOB+MERGE的方式实现。
    第一步 创建一个存储过程(当然也可以直接写到JOB中)
    CREATE PROCEDURE PRC_SYNC_DATA
    AS
    BEGIN
    	SET NOCOUNT ON
    	--跨库跨服务器同步A到B (A,B 表结构相同)
    	--通过条件判断 相同则 更新  不同则插入
    	merge   [guagua_vas_statistics].[dbo].[t_base_goods] t --要更新的目标表 
    	using [192.168.1.75,18991].[guagua_goods].[dbo].[t_base_goods] s --源表 
    	on t.base_goods_id=s.base_goods_id --更新条件(即主键) 
    	when matched --如果主键匹配,更新 
    	then update set t.name=s.name,t.unit_name=s.unit_name
    					,t.depletable=s.depletable,.......
    	when not matched 
    	then insert values([base_goods_id],[name],[unit_name],[depletable],....)
    	when not matched by source then 
    		delete ; --目标中存在源中没有的记录时删除。此处by source不能省略 
    		
    
    END		
    


  • 相关阅读:
    成都磨子桥技工学校 / 数据结构 Challenge 4
    圆桌问题(网络流24题)
    试题库问题(网络流24题)
    [AHOI2005]航线规划
    [AMPPZ2014]The Prices
    方格取数(网络流24题)
    太空飞行计划问题(网络流24题)
    Linux 学习3
    Linux 学习2
    Linux 学习1
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3341680.html
Copyright © 2011-2022 走看看