使用 SSIS 将动态数量的表复制到平面文件中
问题
我想将多个表(大约 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
老实说,当您希望循环遍历具有不同列的文件时,SSIS 的表现并不是特别好。在这种情况下,您可能最好使用 BCP。它可以直接输出 CSV 文件,并且,如果您可以运行 xp_cmdshell,则可以在 T-SQL 中运行每个表。例如,类似以下内容...
链接到 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...
Link to BOL on BCP...http://msdn.microsoft.com/en-us/library/ms162802.aspx