我有一个SSIS包,我从不同的SQL Server代理作业并行执行多次。我使用命令行参数/ CONNECTION将ConnectionString设置为Connection Manager。
似乎SSIS再次使用设计时值覆盖我的运行时ConnectionString。我还发现了一篇MSDN文章,说明确实发生了这种情况 http://msdn.microsoft.com/en-us/library/bb500430(v=sql.105).aspx
有没有办法在运行时覆盖Connection Manager ConnectionString?我需要这个功能,因为我使用相同的软件包进行不同的设置,所以我不能“硬编码”ConnectionString。
答案 0 :(得分:3)
如果您仅限于使用命令行,则使用 / SET 在运行时更改变量的值并使用表达式,从中构建连接字符串变量(如上面发布的链接表示/ SET覆盖设计时值,而/ CONNECTION则不会。)
dtexec /f mypackage.dtsx /set \package.variables[myvariable].Value;myvalue
在运行时覆盖或提供 ConnectionSting 的另一种方法是按照here所述开始使用包配置。
答案 1 :(得分:1)
使用记事本编辑[mypackage].dtsx
,手动更改ConnectionString
,然后保存。