【发布时间】:2023-04-08 14:45:01
【问题描述】:
背景:
我正在尝试迭代 .sql 文件列表,执行每个文件,将每个查询的结果保存到一个特殊命名的分隔文本文件中。现在,我使用一个完全独立的 C# 程序来实现这一点。我是 SSIS 新手,但我非常擅长 C#。在我将要工作的 IT 部门继续前进,SSIS 是首选解决方案,因此将其全部放入一个巨大的脚本操作中(遗憾的是)不是解决方案。
问题:
下面是我的控制流的图片。
想要的效果如下:
- Foreach 循环遍历一个包含 .sql 文件的文件夹。
-
Load SQL 任务将当前 .sql 文件的内容分配给一个变量。
(这两个步骤都有效)
-
数据流任务:
- 执行变量 AND 中的 SQL!
- 将任意大小的结果保存到变量或文件中。
(返回控制流:)缺失:使用不同的分隔符和不同的文件名保存报告。
- 上传报告执行 WinSCP 以抓取文件并将其放入 n > 1 个指定位置。
问题:
如何让数据流不关心列数?例如,报告 1 有 5 列,报告 2 有 50,报告 3 有 25。所有这些都可以。我不在乎它有多少列,在这种情况下我真的不太关心元数据。
我可以用 C# 做到这一点,只需说“这是一个数据表,填充它”。 SSIS 显然缺乏这种适应列数的能力。是的?不?说搞砸了,只是用脚本对象来做?在这里做什么的公认智慧是什么?
如果这个问题揭示了对 SSIS 工作原理的一些基本误解,也请随时发表评论。
提前致谢!
【问题讨论】:
-
如果您已经知道如何使用,请编写脚本。具有任意列的 SSIS 在 2008 年很困难。我不知道那个版本。
标签: c# sql-server ssis dataflow