我正致力于从SQL Server数据库创建csv导出,并且我已经熟悉了这样做的过程,诚然,我从未完全理解过。该过程涉及创建一个"模板" file,定义文件导出的列和结构。一旦"模板"文件存在,您可以使用数据流任务来填充它,并使用文件系统任务将其复制到最终存储目标,并使用您喜欢的任何文件名(通常是日期/时间戳)。
您是否有理由不直接创建文件,而没有中间模板"文件?我已经四处寻找,看起来所有提出的解决方案都涉及到连接到现有文件。我看到有一个"创建文件" "文件"的使用类型连接管理器,但您无法在任何文件系统任务中使用它。您可以使用相对于文件的唯一文件系统类型连接管理器是"复制","删除","移动","重命名" ,和"设置属性"。
有没有办法在包运行时创建文件并填充它?
答案 0 :(得分:0)
SSIS的重点是创建一个包含元数据的数据流,以便可以操作数据 - 如果您只想将数据库直接转换为CSV,那么最好从命令行使用bcp(批量复制程序) 。如果要将其作为SSIS包的一部分包含,只需添加一个执行进程任务并将命令行添加到该任务中。您可以通过向任务添加表达式来动态更改包含的列或输出文件。您也可以使用Excute SQL Task通过TSQL调用bcp。
另一个选项是将查询中的所有列连接到逗号文字,并输出到只有一个非常宽的列的文本文件。
有关bcp的文档,请查看here