我正在尝试做一些我认为应该非常简单的事情,但我看不出如何实际做到这一点。
我有两个数据库,它们包含相同结构的相同表格。
我想将数据从一个数据库导入另一个数据库,插入不存在的新行并更新与id匹配的行。这需要每天晚上完成。
我正在使用SQL Server 2012。
我认为最好的方法是使用包含tsql MERGE语句的'execute sql task'的SSIS包。
我无法看到如何实际执行该过程所需的两个数据库连接。
我在网上看了很多书,虽然它说有可能,却找不到任何例子。
任何帮助都会非常感激。
感谢。
答案 0 :(得分:2)
使用增量加载模式是解决此问题的方法。
在http://www.sqlservercentral.com/stairway/72494/
上查看精彩的解释和示例我仍然认为Merge是一种更简洁的方法,你可以提供源和目标数据库。
答案 1 :(得分:0)
您应该可以使用SSIS中的合并转换来执行此操作。关于连接,您可以在包级别创建2个连接管理器。然后,添加数据流任务并将两个OLEDB源的输出通过管道传输到合并转换。确保在执行此操作之前对数据进行排序,否则将出现错误。
探索的另一个选择是复制。根据您的声明,这需要每天晚上完成,您可以创建快照复制,其中一个表作为源,另一个作为目标。另一方面,如果您希望数据几乎实时地通过,或者两个表都可以由应用程序更改,则可以使用事务复制。关于MSDN
的更多信息