T-SQL的表级差异和同步过程

Vil*_*nen 5 sql t-sql database synchronization

我对T-SQL源代码感兴趣,该源代码用于将表(或可能是其子集)与来自另一个类似表的数据同步.这两个表可以包含任何变量,例如我可以拥有的变量

 base table    source table 
 ==========    ============
 id     val    id       val
 ----------    ------------
 0        1    0          3
 1        2    1          2
 2        3    3          4
Run Code Online (Sandbox Code Playgroud)

要么

 base table             source table 
 ===================    ==================
 key    val1    val2    key   val1    val2
 -------------------    ------------------
 A         1       0    A        1       1  
 B         2       1    C        2       2
 C         3       3    E        4       0
Run Code Online (Sandbox Code Playgroud)

或任何两个包含类似名称的类似列的表.我希望能够

  • 检查两个表是否具有匹配的列:源表与基表具有完全相同的列,并且数据类型匹配
  • 从基表到源表的diff
  • 执行必要的更新,删除和插入以更改基表中的数据以对应源表
  • 可选地将diff限制为基表的子集,

最好是存储过程.有没有人为此写过存储过程,还是你指向一个来源?

Saa*_*aar 1

有趣的问题。

你可以从 EXCEPT - INTERSECT 开始

http://msdn.microsoft.com/en-us/library/ms188055.aspx

这是现成的解决方案,可能会帮助你

http://www.sqlservercentral.com/scripts/Miscellaneous/30596/