我有DB1和DB2。我想将所有表格数据从DB1导出到DB2。DB2中的一些表具有与DB1相似的行。由于PK约束,无论我在SSIS中使用什么方法,这都会抛出一个错误。如何动态忽略目标表中存在的行并继续与其他表一起复制。我需要一次运行整个数据库的进程。我有100个表,所以这样做,为每个表将不会工作。我尝试使用SSIS (BI)中的Transfer SQL Server Objects Task控件,但它不提供处理我的情况的选项。
任何帮助都是非常感谢的,而且也不是很紧急。
发布于 2011-05-11 15:42:06
您可以为此使用查找。
http://jahaines.blogspot.com/2009/09/ssis-only-inserting-rows-that-do-not.html
编辑:如果需要合并两个表中的数据,则使用合并组件合并两个数据源,然后在合并表之后使用查找。如果合并的数据中有重复项,则可以在合并和查找之间使用排序组件,并勾选该框以删除重复项。不过要注意,就资源使用而言,使用sort组件的开销很大。
实现这一点的另一种方法是将两个表中的所有数据放入接收SQL框上的单个临时表中。然后编写一个存储过程,只将新行插入到生产表中,最后截断临时表。我会从控制流调用SP作为执行SQL任务。
就我个人而言,我会使用阶段表方法,因为试验和错误表明这对我来说更简单和最有效。不需要昂贵的排序和查找(查找并不昂贵),但SQL引擎喜欢在SP中执行基于集合的工作。
https://stackoverflow.com/questions/5955040
复制相似问题