博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSIS之Foreach循环容器应用
阅读量:4601 次
发布时间:2019-06-09

本文共 915 字,大约阅读时间需要 3 分钟。

 通常我们需要从不同的数据库抽取数据到一个集中汇总点,这里使用SSIS包方式

  例如我们从三个库的B表抽取数据到另一个库的A表

   建表语句: 

CREATE  TABLE  svrlist (	id INT NOT NULL  IDENTITY(1,1)  PRIMARY  KEY,	dbname VARCHAR(20) )  INSERT INTO  svrlist (dbname) SELECT 'db1' UNION ALL SELECT 'db2'  UNION ALL SELECT 'mhsh_monitor'

  

1.在BIDS中新建Integration Services 项目,在控制流页面拖入【执行SQL任务】,属性设置如下:

2011051211203626.gif

2011051211210611.gif

2.设置foreach容器

2011051211252971.jpg

2011051211272593.jpg

2011051211274978.jpg

3 在foreach容器中放入一个【数据流任务】,双击数据流任务进入 数据流设计界面,分别在拖入工具箱-数据流源-ole db源, 工具箱-数据流目标-ole db目标

设置如下:

2011051211313852.gif

2011051211352816.jpg

2011051211355235.jpg

127.0.0.1.db1  读取基础表信息,数据汇总表A的链接信息 设置如下:

2011051211363812.jpg

LocalHost.db1  源数据链接信息,需要动态读取foreach循环中的 数据库名称 设置如下:

2011051211391417.jpg

完成,最终结果如下:

2011051211440995.jpg

图中的序列容器用于启用和禁用内部子容器,脚本任务打印出从foreach中读取的数据库名称。

执行之后数据结果如下:

2011051211451532.jpg

完毕。

附改进效果:

 如果某一个数据库抽取数据失败,希望foreach容器只记录此DB数据库,跳过此次循环继续下一次只到循环完成,相当于C#中continute效果,默认是遇到错误就停止。

 1.设置foreach容器的ForceExcutionResult属性为Success

 2.设置foreach容器中记录错误的组件ForceExcutionResult为Completion

 3.其他容器默认设置为None

2011061016300737.gif

执行结果如上。

posted on
2011-05-12 11:47 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/Henry1225/archive/2011/05/12/2044181.html

你可能感兴趣的文章
java中==和equals
查看>>
CCActionPageTurn3D
查看>>
python random
查看>>
esp32-智能语音-cli(调试交互命令)
查看>>
netty与MQ使用心得
查看>>
关于dl dt dd 文字过长换行在移动端显示对齐的探讨总结
查看>>
swoolefy PHP的异步、并行、高性能网络通信引擎内置了Http/WebSocket服务器端/客户端...
查看>>
Python学习笔记
查看>>
unshift()与shift()
查看>>
使用 NPOI 、aspose实现execl模板公式计算
查看>>
行为型模式:中介者模式
查看>>
How to Notify Command to evaluate in mvvmlight
查看>>
33. Search in Rotated Sorted Array
查看>>
461. Hamming Distance
查看>>
Python垃圾回收机制详解
查看>>
{面试题1: 赋值运算符函数}
查看>>
Node中没搞明白require和import,你会被坑的很惨
查看>>
Python 标识符
查看>>
Python mysql 创建连接
查看>>
企业化的性能测试简述---如何设计性能测试方案
查看>>