【发布时间】:2015-03-11 22:08:24
【问题描述】:
我继承了一些需要修改的 SSIS 包,以便从 SQL 2008 R2 迁移到 SQL 2012。不幸的是,“配置”做得很差。
我们有一个适用于所有 SSIS 包的全局 XML 配置文件,并且 XML 配置文件中只有几个变量——服务器名称、ODS 服务器名称和环境(开发、集成、PreProd 和生产)。
为了“配置”,他们在 SSIS 包中编写代码:If 'Development' Then ... Else If 'Integration' Then ...
要更改“配置”,必须更改包中的代码。
我曾尝试协商更改但没有成功,但没有人做出让步,因此保留了一个 XML 配置文件。
如果我可以添加第二个 XML 配置文件,其中包含需要在每个环境中配置的特定于包的变量,我就会这样做。但是,我还没有找到一种方法来做到这一点。有可能吗?
我的第二个选择是将变量放在 SQL Server 表中。
【问题讨论】:
-
等等,什么?
In order to change the "configuration", one has to change the code in the Package他们是否手动解析配置文件并在脚本任务中分配值?否则,一旦包开始执行,所有配置都已经完成 -
我很高兴赌上我所有的神奇 SO 独角兽积分和我的 SSIS 金牌,并明确表示:他们做错了。
-
您可能已经发现 SQL 2012 有一个新功能“环境”(使用项目部署模型)。也许您会争辩说您没有充分利用新功能
-
PS 这需要发布到 thedailywtf.com
-
@Nick.McDermaid 2007 年我去拜访客户时,我看起来像个该死的天才。他们将 machine.config 用于他们的 IIS,所以不妨也将它用于 SSIS,对吧?因此,每个包大部分都有相同的代码来解析它并获取所需的连接字符串。 “你们都知道这是产品内置的,对吧?” 蟋蟀
标签: ssis sql-server-2008-r2 sql-server-2012 ssis-2012