问题
我想把一些表(大约100张)复制到独立的平面文件中。这些表没有相同的列数。
到目前为止
我已经提取了希望使用sys查询复制的表,并使用每个容器循环遍历每个表。表名存储在变量中。每个容器都有一个带有OLE DB Source组件的数据流任务。这将使用表达式查询(用于插入表名)提取所有字段。
现在怎么了?
我被困在如何将数据保存到一个平面文件。每个平面文件都应该将表名作为文件名(可以通过将连接字符串声明为表达式来实现),但是我不知道如何处理和绑定动态的列数量。
发布于 2011-03-21 02:56:54
老实说,当您希望遍历具有不同列的文件时,SSIS并不能发挥特别好的作用。在这种情况下您可能会更好地使用BCP。它可以直接输出CSV文件,如果可以运行xp_cmdshell,则可以在T中遍历每个表。例如,下面这样的东西..。
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
https://stackoverflow.com/questions/5376046
复制