2013-12-09 50 views
0

这里是什么样的SQL表看起来像一个例子:SSIS - 从SQL表导出到基于第一列多个平面文件值

Name Class Grade 
Jesse English A 
Jesse Math C 
Jesse History A 
Scott Math B 
Scott History B 
Scott English A 
Mike History A 
Mike English D 

我试图让SSIS动态创建一个平面文件每个人。例如:

平面文件名:杰西

Name Class Grade 
Jesse English A 
Jesse Math C 
Jesse History A 

平面文件名:斯科特

平面文件名:迈克

Name Class Grade 
Mike History A 
Mike English D 

我可以很容易地创建一个sql表和平面文件之间的静态链接,但我计划在表中添加很多人,否则会导致我为每个表创建数据流任务。这不会很理想。我希望为每个循环标识Name列中的不同值,然后将合格的行输出到平面文件中。

回答

2

首先运行一个查询,以找到独特的学生的一个记录:

select distinct name from myTable 

然后使用foreach循环来,但并运行下面的参数化查询:

SELECT class, grade 
FROM myTable 
WHERE name = ? 

使用派生列将名称包含在结果集中。

把它放在平面文件目标中。输出文件的连接字符串将是动态的。

这些是步骤。如果你遇到困难,网上有很多例子,或随意问。

1

这是你的包应该怎么样子:

in the control flow

in the data flow

右点击 - >可变1.student - >对象 2.students - >字符串(控股结果

在数据流 - 连接管理器 - 右键 - 平面文件连接 - >属性 - >表达式中提到它是这样的:: "C:\\Users\\user\\Desktop\\ssis_stuff_from_stackoverflow\\citys.txt-"+ @[User::student] +".txt"

包成功地执行影响3行和在folder path

here is one good example

添加3个平面文件
相关问题