首页 > 解决方案 > 我在哪里可以找到可以从存储过程创建文件(Excel、txt、csv)的模板 SSIS 包

问题描述

我对生成和交付具有不同扩展名的文件有很多要求,例如:.xlsx、.txt、.csv

我不擅长 c#,但我假设有一个带有 Script Task 的 SSIS 包,您只需要更改变量名,如ExtensionStoredProcedureName。它会动态创建任何扩展名的文件并将该 SP 的输出插入到文件中。

有人遇到会做类似事情的 SSIS 包模板吗?

谢谢

标签: c#sql-servertemplatesssis

解决方案


由于 SSIS 数据流的工作方式,您正在寻找的内容将不存在。元数据(关于类型、列数等的数据)与 SSIS 包的设计时体验紧密相关。尝试在运行时更改它会导致验证错误 (VS_NEEDSNEWMETADATA)。

即使您可以使更改的元数据正常工作,输出也会成为下一个问题。您可以在运行时更改文件名或目标表名或许多其他内容。但是,您无法改变的是目标本身。我不能让一个包修改自己以发送到平面文件,然后在下一次运行中翻转一个标志,现在我们生成一个 Excel 文件。

如果您有编码技能,您可以基于元数据动态创建包,然后自行运行,但 由于 COM 和 .NET 对象的混合,这不是一项有趣的任务。

如果是我,我会看类似Biml的东西。使用您必须构建一个包的元数据来处理所有可能的排列(源查询 A 到 Excel、平面文件、CSV 等)。一旦你确定了模式,你就可以为所有可能的源查询制作一个包。然后,您将问题简化为编排——我运行哪个包?


推荐阅读