Sql server 在ssis包中创建平面文件
我正在从SQLServer数据库创建csv导出,我熟悉这样做的过程,但不可否认,我从未完全理解。该过程包括创建一个“模板”文件,该文件定义文件导出的列和结构。一旦“模板”文件存在,您就可以使用数据流任务填充该文件,并使用文件系统任务将其复制到最终存储目标,使用您想要的任何文件名(通常是日期/时间戳) 没有中间的“模板”文件,您就不能直接创建文件,这有什么原因吗?我环顾了一下四周,似乎所有建议的解决方案都涉及到连接到现有文件。我看到“文件”连接管理器有一个“创建文件”的使用类型,但您不能在任何文件系统任务中使用它。您可以针对文件使用的唯一文件系统类型连接管理器是“复制”、“删除”、“移动”、“重命名”和“设置属性”Sql server 在ssis包中创建平面文件,sql-server,ssis,sql-server-2008-r2,Sql Server,Ssis,Sql Server 2008 R2,我正在从SQLServer数据库创建csv导出,我熟悉这样做的过程,但不可否认,我从未完全理解。该过程包括创建一个“模板”文件,该文件定义文件导出的列和结构。一旦“模板”文件存在,您就可以使用数据流任务填充该文件,并使用文件系统任务将其复制到最终存储目标,使用您想要的任何文件名(通常是日期/时间戳) 没有中间的“模板”文件,您就不能直接创建文件,这有什么原因吗?我环顾了一下四周,似乎所有建议的解决方案都涉及到连接到现有文件。我看到“文件”连接管理器有一个“创建文件”的使用类型,但您不能在任何文件
有没有办法在包运行时创建一个文件并填充它?SSI的整个要点是创建一个包含元数据的数据流,以便可以对数据进行操作-如果您只想将数据库直接转到CSV,那么最好从命令行使用bcp(大容量复制程序)。如果您想将其作为SSIS包的一部分,只需添加一个执行流程任务并将命令行添加到该任务中即可。通过向任务添加表达式,可以动态更改包含的列或输出文件。您还可以使用Excute SQL任务通过TSQL调用bcp 另一种选择是将查询中的所有列连接起来,并用逗号文本隔开,然后输出到只有一个非常宽的列的文本文件中
有关bcp的文档,请参见,您可以通过脚本转换来完成。