使用动态变量创建 SSIS 包
Posted
技术标签:
【中文标题】使用动态变量创建 SSIS 包【英文标题】:Create SSIS package with Dynamic Variables 【发布时间】:2015-10-28 07:37:49 【问题描述】:我们有一个创建 SSIS 包的新要求。当包被执行时,它应该将某些表数据复制到一个 excel 文件中。
表名,excel文件路径,excel文件名是动态的(根据用户输入)。 我是 SSIS 新手,我只使用静态值。如何在 SSIS 中实现上述场景?
【问题讨论】:
用户输入的来源(应用程序、SSMS、日程安排等)? Excel 文件结构和表格结构每次都会完全一样吗? @Aka Guymelef ,它来自应用程序,我们认为将输入作为参数传递给存储过程。 @Raj 更多,表结构明显不同,excel 结构取决于表结构。 【参考方案1】:这在 SSIS 中并不容易,因为您需要在表源和 Excel 目标之间使用数据转换组件。每次查询具有不同的输出列时,该数据转换组件必须具有不同的列。
我在网上找到了一些解决方案,但没有一个对我有用。所以我写了自己的解决方案,基本上包括以下步骤:
获取 SQL 脚本文件的内容(您可以在该文件中放置选择查询)。 从脚本代码创建一个临时表(用于确定输出的结构)。 生成并执行用于创建 Excel 工作表的脚本。 以 Excel 文件作为输出动态生成用于执行 SQL 脚本的临时包。 执行并删除动态包。目前我正在www.codeproject.com 上写一篇文章来分享我的开发成果。但是,它可能需要一段时间才能完成。
【讨论】:
感谢您的回答。但我在第 3 和第 4 分中被击中。你能详细说明一下吗? 不客气。我将在我关于 codeproject 的文章中这样做。它需要大量解释......但简而言之:为 Excel 创建一个 CREATE TABLE 脚本。可以在此处找到示例:codeproject.com/Articles/301542/…。生成动态包的代码可以在这里找到:blogs.msdn.com/b/mattm/archive/2009/01/02/…. 请在完成文章后通知您。让我自己试试 @user5359841:这是 CodeProject 上的文章:codeproject.com/Articles/1037650/…。 欢迎您!以上是关于使用动态变量创建 SSIS 包的主要内容,如果未能解决你的问题,请参考以下文章