使用 SSIS 将动态数量的表复制到平面文件中

发布于 2024-10-23 21:30:37 字数 327 浏览 2 评论 0原文

问题

我想将多个表(大约 100 个)复制到单独的平面文件中。这些表的列数不同。

到目前为止

我已经提取了我希望使用系统查询复制的表,并使用每个容器循环遍历每个表。表名存储在变量中。每个容器都有一个带有 OLE DB 源组件的数据流任务。这使用表达式查询提取所有字段(以插入表名称)。

现在怎么办?

我不知道如何将数据保存到平面文件中。每个平面文件应该将表名作为文件名(可以通过将连接字符串声明为表达式来完成),但我对如何处理和绑定动态数量的列一无所知。

Problem

I would like to copy a number of tables (around 100) into seperate flat files. The tables do not have the same number of columns.

So far

I have extracted which tables I wish to copy using a sys query and loop through each table using a for each container. The table name is stored in a variable. The for each container has a data flow task with an OLE DB Source component. This extracts all fields using a expression query (to insert the table name).

Now what?

I am stuck on how to save the data into a flat file. Each flat file should have the table name as filename (that can be done by declaring the connectionstring as an expression), but I am clueless on how to handle and bind the dynamic amount of columns.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

韬韬不绝 2024-10-30 21:30:37

老实说,当您希望循环遍历具有不同列的文件时,SSIS 的表现并不是特别好。在这种情况下,您可能最好使用 BCP。它可以直接输出 CSV 文件,并且,如果您可以运行 xp_cmdshell,则可以在 T-SQL 中运行每个表。例如,类似以下内容...

declare @bcpsql varchar(8000)
select @bcpsql = 'bcp <tablename> out c:\<tablename>.txt -c -t, -T -S <yourserver>'
exec master..xp_cmdshell @bcpsql

链接到 BCP 上的 BOL...http ://msdn.microsoft.com/en-us/library/ms162802.aspx

To be honest, SSIS doesn't play particularly nicely when you're looking to loop through files with differing columns. You'd probably be better using BCP in this case. It can output CSV files directly, and, if you can run xp_cmdshell, you can run through each of your tables in T-SQL. For example, something like the following...

declare @bcpsql varchar(8000)
select @bcpsql = 'bcp <tablename> out c:\<tablename>.txt -c -t, -T -S <yourserver>'
exec master..xp_cmdshell @bcpsql

Link to BOL on BCP...http://msdn.microsoft.com/en-us/library/ms162802.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文