SSIS 条件拆分基于列值

SSIS Condition split based on column value

大家好,

我有一个 select 查询,我从 sql 中提取数据,即

select invno , date_received from sales

我想做的是使用条件拆分将文件拆分为多个文件。 我不知道如何设置我试过的条件如下

但它只创建一个文件,如果我不知道列值是什么,如何根据列值创建多个文件?

我还想将列值即 INVNO 分配给文件名,以防止覆盖文件

使用开箱即用的组件,你最好的选择是拥有这样的东西

执行 SQL 任务将 return 一个完整的结果集到一个对象类型的 SSIS 变量。您的查询将生成不同的 INVNO 集。 SELECT DISTINCT T.INVNO FROM dbo.Sales AS T;

然后 Foreach 循环容器将 "shred" 该记录集放入我们的 INVNO 的单个实例中。这要求您有一个变量(可能是字符串类型)来接收该数字。

数据流任务将有一个参数化查询作为源查询。假设 OLE DB 连接管理器,那是 select INVNO, date_received FROM dbo.Sales AS S WHERE S.INVNO = ?; 然后你映射到 INVNO 的当前值(作为 FELC 粉碎的一部分分配)

最后,平面文件连接管理器将在 ConnectionString 属性 上有一个表达式,它会影响输出文件的完整路径。它可以像 "C:\ssisdata\" + @[User::Invno] + ".csv"

这样简单

哦,为平面文件连接管理器和数据流任务设置 DelayValidation = True。