我有excel源码和sql server表。
Excel源列
Mno Price1 Price2
111 10 20
222 30 25
333 40 30
444 34 09
555 23 abc
Sql server Table
产品表名称
PId Mno Sprice BPrice
1 111 3 50
2 222 14 23
3 444 32 34
4 555 43 45
5 666 21 67
我想比较excel源Mno(型号)和sql server产品表Mno(型号),如果它相同我想更新Sql server产品表SPrice和Bprice。
请告诉我我想做的步骤是什么?
我也想验证excel表,因为在excel Price2列中有字符串值
如果是字符串值我想发送邮件哪个行数据错误。
我是SSIS的新手,所以请告诉我详情。
答案 0 :(得分:1)
在源中读取新数据,对现有数据使用查找组件。直接行匹配oledb命令以进行更新,以及不匹配插入的目标(如果要输入新产品)。
答案 1 :(得分:0)
我个人认为最简单的方法是使用数据流将excel文件放入临时表,并在需要时进行任何清理。然后,作为下一步,控制流具有执行更新的执行SQl任务。或者,如果记录是新的,则需要更新或插入,请在执行SQl任务中使用Merge语句。
答案 2 :(得分:0)
您可以将合并连接转换与完全外连接一起使用(记住在输入到合并连接转换之前对数据集进行排序),然后将输出转到条件拆分转换。条件性拆分转换可以确定是否需要更新,插入或删除行,并将流引导到适当的转换以执行此操作。
这不是我的头脑,可能会有一个更简单的变换。我差不多有一年没有机会与SSIS合作了,所以我可能会有点生疏。