日期:2014-05-18  浏览次数:20534 次

求助!SSIS如何根据某个字段不同的值来干不同的事啊?
有个源数据库DB_A,有一个车辆表t_cars
id int
NO varchar
name varchar


DB_A里面有一个临时表叫t_cars_temp,
id int
NO varchar
name varchar
modifiedDate datetime
modifiedType varchar

对t_cars表的操作(增删改)的时候,都会在t_cars_temp插入一条记录,记录的是t_cars表里的信息加modifiedDate和modifiedType两个字段的内容。如
id NO name modifiedDate modifiedType
1 02030 张三 2011/12/13 07:15:21 insert
2 22030 李四 2011/12/13 07:45:14 delete
3 50021 王五 2011/12/13 08:05:38 edit

然后我需要用SSIS来进行增量数据提取,也就是在t_cars_temp提取增量记录,对提取到的数据进行分析后更改数据库DB_B的t_cars表,
如果modifiedType字段的值是insert,则把id、NO、name的值插入到数据库DB_B的t_cars表中。
如果是edit则删掉DB_B的t_cars表的对应id的那条记录,然后把id、NO、name的值插入到数据库DB_B的t_cars表中。
如果是delete则直接删掉DB_B的t_cars表的对应id的那条记录。


我应该怎么做?对SSIS才学了几天,很多东西不是很了解,前几天解决了提取增量数据的问题,现在遇到的是这个问题,天呐,快被折磨死了。能提供可用解决方案的给高分!

------解决方案--------------------
条件性拆分。
------解决方案--------------------
探讨

条件性拆分。

------解决方案--------------------
1, 把同步处理的代码写成存储过程.

2, 在ssis的control flow里添加一个Execute SQL Task,

3. 在Execute SQL Task里执行存储过程: exec [存储过程名]
------解决方案--------------------
这种逻辑可以用 Execute SQL Task组件来执行.
逻辑封装在过程里.