利用SSIS进行SQL Server 数据导入导出——Lookup Plus组件的使用心得

问题描述:接触SSIS不久,接到一个小任务,将SQL Server里的三张表的数据按其表间关联导出到3个sheet中,作为简单报表给客户。由于类似于ID之类的字段对于客户实际意义并不大,所以要将ID类字段数据换成与之对应的name字段数据,而这两字段之间的对应关系又存在另一张表,所以这儿就涉及到查询替换的一个技术问题。

虽然前面已经有很多前辈做过关于数据导入导出的经典总结了,但我还是把我的一点小小经验码出来吧。

在SSIS中有lookup和lookup plus 两个组件,前者是微软自己开发的,后者是专门的组件公司开发的,属于商业组件,需要自己购买,所以有的SSIS Tools中可能没有lookup plus。但是两者都可以进行数据转换,已亲测。这里我就偷个小懒,用lookup plus吧,毕竟商业组件,更加高效智能,存在即合理嘛。

好了,废话不多说了。由于导出的是三张表,我就拿一张表总结啦。

先在control flow 里拖出一个data flow task吧,然后看看data flow task里面的具体流程吧。
这里写图片描述
大致流程可总结为:数据源—>数据转换—>导出到Excel表。

先看数据源即就是你需要导出的数据结果集。
这里写图片描述

选择数据库的连接,选择SQL command(如果是导出某张表全部数据,可在Data access mode选择table or view,然后在下面选择需要导出的表),SQL command text中填写SQL查询脚本,可以点击Preview预览查询结果。这里写图片描述
还可以在Columns查看和选择输出字段,在这就不做演示了。

接下来配置lookup plus了,我们的关键技术点(默默装了一把,其实没想象那么难)。

这里写图片描述
选择Input Column,点开Reference。
这里写图片描述
同样,选择数据库连接以及存储TrustID字段与TrustName字段对应关系的表。在Key Column里填写需要转换的字段(这儿就是TrustID),在Value Column处填写转换后的输出字段(这儿是TrustName)。

欧克,lookup plus设置完成。

最后一步就是导出到Excel表了。

选择Excel连接以及所需导入的sheet表,并在Columns里检查一下字段映射,导出字段是否正确。
这里写图片描述
确认无误后,点击OK。
最后一步就是猿媛最喜欢的click F5 to run SSIS packages了。

接下来从Excel导入SQL Server数据库就不做演示了,方法雷同,换个数据导入方向而已。如果出现说某一字段无法在Unicode与ununicode间进行转换,那是字段属性问题,加个data convert组件对不匹配的字段进行一下数据转换就好啦。

另外,Excel类似于access数据库,sheet类似于access的表,所以在导出到Excel时需要提前创建好Excel文件及sheet表,而且在运行导出SSIS包时最好将Excel关掉,不然会提示Excel被占用。

(tips:可以在组件间的连线右键选择Edit,添加一个运行结果显示,感觉类似于文本编程中的断点设置以及LabVIEW中的探针,呵呵)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值