SSIS中循环遍历组件[Foreach Loop Container]

背景

每月给业务部门提取数据,每个分公司都要提取一般,先跑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

父节点

2. 根据模板文件[GABonus.xls],通过遍历二级机构列表生成GABonus[BJ|GD|SH|…].xls的文件。文件名规则:以GABonus开头+分公司名称缩写

 

SSIS

 

 

步骤

1. 建立SQL查询,“Excecute SQL Task”组件配置

 

 

2. 配置[Foreach Loop Container]控件

3. 配置Script Task 组件

 

脚本

 1 Imports System
 2 Imports System.Data
 3 Imports System.Math
 4 Imports Microsoft.SqlServer.Dts.Runtime
 5 
 6 Public Class ScriptMain
 7     Public Sub Main()
 8         Dts.Variables("newFileName").Value = "D:\GABonus" + Dts.Variables("newCodeString").Value.ToString() + ".xls"
 9         Dts.TaskResult = Dts.Results.Success
10     End Sub
11 End Class

 

本文原创,转载请联系作者本人

posted on 2017-12-22 10:34  iPeterRex  阅读(642)  评论(0编辑  收藏  举报

导航

转载本博客文章请注明转载地址、作者姓名