以下是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为每个人动态创建一个平面文件。例如:
平面文件名: Jesse
Name Class Grade
Jesse English A
Jesse Math C
Jesse History A
平面文件名: Scott
Name Class Grade
Scott Math B
Scott History B
Scott English A
平面文件名: Mike
Name Class Grade
Mike History A
Mike English D
我可以轻松地在sql表和平面文件之间创建静态链接,但我计划在表中添加很多人,否则会导致我为每个人创建数据流任务。这不太理想。我希望为每个循环确定Name列中的不同值,然后将限定行输出到平面文件中。
答案 0 :(得分:3)
这是你的包的样子:
右击 - >变量1.student - >对象 2.students - >字符串(用于保存所有给你需要的学生的名字)结果
在数据流中 - 连接管理器 - 右键单击 - 平面文件连接 - >属性 - >表达式将其提及为:: "C:\\Users\\user\\Desktop\\ssis_stuff_from_stackoverflow\\citys.txt-"+ @[User::student] +".txt"
包成功执行影响3行并在folder
path
答案 1 :(得分:2)
首先运行查询以查找唯一学生的记录集:
select distinct name from myTable
然后使用foreach循环循环并运行以下参数化查询:
SELECT class, grade
FROM myTable
WHERE name = ?
使用派生列将名称包含在结果集中。
将其放在平面文件目的地。输出文件的连接字符串将是动态的。
这些是步骤。如果你遇到困难,可以在网上找到很多例子,或随意提问。