HelloSSIS - 2008-6-11 14:08:00
例如: 源表srcTable 目的表armTable. 表结构相同,采用多字段联合做主键.
现在把srcTable的数据导入到armTable,需要通过主键字段判断record是否已存在,如果存在,则不操作,如果不存在则新增纪录.
如果有if else多么好办啊..但是在控制流和数据流中都没有发现流程控制的控件.请问如何实现?
dbasys - 2008-6-11 20:36:00
你的问题,我也遇到过!
我认为,可以有三种思路:
1 lookup查找组件;
2 渐变维度;
3 利用full outer join ;
我刚刚实现了一个例子,在这里就不详细讲了,给出我的总结,一个链接,希望对你有用,如果有不懂可以可以相互交流,共同学习!
http://blog.csdn.net/guoqiang1983/archive/2008/06/04/2511703.aspx但是这种方法只适合小数据量的抽取。在大数据量情况下,我还没有找到更好的思路。希望版主或牛人给出写建议。
例如:
1 怎样利用 渐变维度(默认能实现update,insert) 我还不知怎么实现delete?
2 大数据量(如10亿条记录,700G数据,每天更新几千万条记录),如何实现数据同步(insert,delete,update)更好?
roshihin - 2008-6-12 10:58:00
其实不用这么麻烦。你使用OLE DB变换task来实现插入操作,如果有相同主键的纪录,这个task会自动报错,然后在这个task的错误出力上选择“行的重定向”即可。然后这个task有一个红色的错误出力线,你可以把这个红线连接到一个SQLCommand的task上。在SQLCommand里可以自己实现相同主键纪录的处理,可以实现用源表数据来更新目的表的数据,实现两个表的数据同步。
在网上也有这方面的文章及图例,可以参考。