使用不同条件运行相同查询创建多个平面文件

时间:2011-09-08 17:25:36

标签: ssis

我的数据库表中有1000万个客户编号。我想每次为前100万客户运行查询,并将该数据保存在.csv文件中。我怎样才能使用SSIS包呢? 例如,

第一次:

选择名字,姓氏,客户ID 来自客户 客户ID在1到1,000,000之间

现在获取结果并将数据存储在本地的test1.csv文件中。

第二次:

选择名字,姓氏,客户ID 来自客户 客户ID在1,000,001到2,000,000之间

现在获取结果并将数据存储在本地的test2.csv文件中。

最多10次

1000万客户号码应该是动态的,不是修复,下次可能是2000万,所以我们必须在数据库上运行20次相同的查询。

谢谢, 桑杰

2 个答案:

答案 0 :(得分:1)

这是一个algorigthm OTTOMH

  • 将表上的rowcount存储到名为TotalRows的变量中

  • 将TotalRows除以20并将其存储到名为IncrementValue的变量中。

  • 使用名为RowCounter的变量创建一个FOR LOOP,该变量从0增加到TotalRows增量增量值

  • 创建一个名为SelectQuery的变量,其中evaluate表达式设置为true,并使用RowCounter和IncrementValue创建相应的Select语句

  • 创建一个名为OutputFileName的变量,其中evaluate表达式设置为true,并使用RowCounter和IncrementValue创建文件名

  • 创建一个名为OutputFilepath的FlatFile类型的连接管理器,并将其指向您希望它写入的所需文件夹

  • 在连接管理器的表达式中,使用所需的文件夹路径和变量FileName

  • 创建动态连接字符串
  • 在for循环中使用DataFlow并添加OleDB数据源和平面文件目标

  • OLEDB数据源查询应该是一个变量,将其设置为变量SelectQuery
  • 将平面文件目标指向OutputFilepath

运行它

答案 1 :(得分:1)