数据库合并问题与重复行

时间:2011-05-10 19:01:07

标签: database ssis copy duplicates rows

我有DB1和DB2。我想将所有表数据从DB1导出到DB2。 DB2中的一些表具有与DB1类似的行。无论我在SSIS中使用何种方法,由于PK约束,这都会引发错误。 如何动态忽略目标表中存在的行并继续与其他人一起复制。我需要立即运行整个数据库的进程。我有100个表,所以每个表的操作都行不通。我尝试在SSIS(BI)中使用传输SQL Server对象任务控件,但它没有让我选择处理我的情况。

任何帮助都受到高度赞赏,并不是很紧急。

1 个答案:

答案 0 :(得分:0)

您可以使用查找。

http://jahaines.blogspot.com/2009/09/ssis-only-inserting-rows-that-do-not.html

编辑:如果需要合并两个表中的数据,则使用合并组件合并两个数据源,然后在合并表后使用查找。如果合并数据中有重复项,则可以在合并和查找之间使用排序组件,并勾选该框以删除重复项。但要注意,使用排序组件在资源使用方面是昂贵的。

实现此目的的另一种方法是将两个表中的所有数据放入接收SQL框中的单个临时表中。然后编写存储过程以仅将新行插入生产表,最后截断登台表。我将控制流中的SP称为执行SQL任务。

就个人而言,我会使用临时表方法作为试验,并且错误表明这对我来说更简单,最有效。不需要昂贵的排序和查找(查找并不昂贵),但SP中基于集合的工作是SQL引擎喜欢做的事情。