通过存储过程游标/循环从数据流任务 (DTS) 获取行集

时间:2021-07-19 12:51:19

标签: sql-server ssis

我对 DTS/DTSX 有点陌生,但就我所了解的而言,我无法找到解决此问题所需的确切解决方案。这个答案很接近但不完全:

SSIS : how to run stored procedure in Data Flow Task

需要什么: 每次存储过程循环(游标)并将新行集输出到临时表时,目标文件任务都会写入文本文件。为新传入的行集删除的最后一个行集。整个操作就是将一个巨大的文件拆分成多个可管理的文件。行集输出可以由计数器更改,已经很好用了。

到目前为止: 我在执行 SQL 任务中存储了 proc 工作正常,它循环并加载所需的行集。问题是我无法让数据流 + 目标文件任务链在每个 proc 游标循环上写出文件,它只会写出 proc 的最后一个行集。我认为在数据流任务周围放置一个 For-Each 任务包装器会起作用,但它是多余的,显然 For-Each 仍然等待存储过程在执行 SQL 任务中完全完成,然后只写出最终的行集.

我基本上必须在每个游标循环上触发数据流/文件目标任务,或者以其他方式向数据流/文件目标任务发送信号以“查看”临时表中现在存在新行集,DF/FD文件写出后已清理(删除)其先前行集的任务。

一切都按预期工作,但对于这个循环行集写出位。任何想法表示赞赏,谢谢。

current DTS package layout

0 个答案:

没有答案