SSIS中循环遍历组件[Foreach Loop Container]
2017-12-22 10:34
603 查看
背景
每月给业务部门提取数据,每个分公司都要提取一般,先跑SQL,再粘贴到Excel中,然后发邮件给相关的人员。费时费力,还容易粘贴错位。因此,需要通过一个程序完成这些步骤。我首先想到的是通过SSIS完成这些工作:包括三步。第一,提取数据并生成各个分公司的Excel文件;第二,压缩文件;第三步,发送邮件。
由于对SSIS并不熟练,看过网上一些文章并自己琢磨后,提炼出一些相关的功能。希望本文能够对工作中的你有所帮助。
目的
学习SSIS中的遍历组件。实例:生成对应分公司的Excel文件,每个分公司生成一个文件。
思路与具体操作
1. 从机构表[branch]中找到二级机构,找到分公司所写代码属性abbrCode。遍历这个表,及需要遍历的集合为select abbrCode from branch where branchLevel=2
branch表结构
2. 根据模板文件[GABonus.xls],通过遍历二级机构列表生成GABonus[BJ|GD|SH|…].xls的文件。文件名规则:以GABonus开头+分公司名称缩写
SSIS图
步骤
1. 建立SQL查询,“Excecute SQL Task”组件配置
2. 配置[Foreach Loop Container]控件
3. 配置Script Task 组件
脚本
本文原创,转载请联系作者本人
每月给业务部门提取数据,每个分公司都要提取一般,先跑SQL,再粘贴到Excel中,然后发邮件给相关的人员。费时费力,还容易粘贴错位。因此,需要通过一个程序完成这些步骤。我首先想到的是通过SSIS完成这些工作:包括三步。第一,提取数据并生成各个分公司的Excel文件;第二,压缩文件;第三步,发送邮件。
由于对SSIS并不熟练,看过网上一些文章并自己琢磨后,提炼出一些相关的功能。希望本文能够对工作中的你有所帮助。
目的
学习SSIS中的遍历组件。实例:生成对应分公司的Excel文件,每个分公司生成一个文件。
思路与具体操作
1. 从机构表[branch]中找到二级机构,找到分公司所写代码属性abbrCode。遍历这个表,及需要遍历的集合为select abbrCode from branch where branchLevel=2
branch表结构
字段 | 类型 | 描述 |
Id | Int | 自增长ID |
branchName | Varchar(50) | 机构名称 |
abbrCode | Varchar(20) | 分公司名称缩写 |
branchLevel | Int | 机构层级 |
parented | Int | 父节点 |
SSIS图
步骤
1. 建立SQL查询,“Excecute SQL Task”组件配置
2. 配置[Foreach Loop Container]控件
3. 配置Script Task 组件
脚本
Imports System Imports System.Data Imports System.Math Imports Microsoft.SqlServer.Dts.Runtime Public Class ScriptMain Public Sub Main() Dts.Variables("newFileName").Value = "D:\GABonus" + Dts.Variables("newCodeString").Value.ToString() + ".xls" Dts.TaskResult = Dts.Results.Success End Sub End Class
本文原创,转载请联系作者本人
相关文章推荐
- java foreach循环遍历List 如何比较List里面值的大小 里面值是int
- 编写高质量代码改善C#程序的157个建议:第17个建议之多数情况下使用foreach进行循环遍历
- Atitit 循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate).
- 自动装箱、拆箱与遍历循环(Foreach循环)
- 跟王老师学集合(四):使用foreach循环遍历元素
- Javascript 数组循环遍历之forEach
- 使用 SSIS Foreach Loop 容器 – Foreach Item Enumerator
- jdk1.8 新特性之 forEach 循环遍历
- Javascript数组循环遍历之forEach详解
- SSIS【Foreach 循环容器_Foreach 文件枚举器】(导入路径下的所有txt文件的内容)
- Atitit 循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate).
- Java 的三种循环:foreach,Iterator 和 classic for loop
- Javascript 数组循环遍历之forEach
- Javascript 数组循环遍历之forEach
- javascript之forEach循环遍历
- jdk1.8 新特性之 forEach 循环遍历
- el表达式:forEach list集合从第2(n)个对象开始循环遍历
- 接受POST表单传过来的信息 可以用foreach循环进行遍历操作
- C#使用foreach循环遍历数组完整实例
- Javascript 数组循环遍历之forEach