我在将2005软件包转换到2008时遇到问题 - 在2008年,配置为使用配置过滤器的软件包变量(例如,从[SSIS配置中填充])似乎不会遵循dtexec提供的/ SET命令。 exe在运行时覆盖包变量值。
对此最直接的解决方案是什么?我想要旧的SSIS 2005行为,其中一个包变量最初是从[SSIS配置]加载的,但我可以在运行时覆盖它,如果我显式调用/ SET
我有一个解决方法,但我希望有一个更好的解决方案 - 我基本上有两个版本的变量我想要...例如NETWORK_PATH,NETWORK_PATH_CONFIG ...我在NETWORK_PATH上放了一个表达式来使用NETWORK_PATH_CONFIG(这个变量)将在[SSIS配置]中填充,如果NETWORK_PATH的值在运行时最初为NULL,则首先计算表达式,否则使用提供的值(可能是由dtexec / SET)
答案 0 :(得分:0)
您可以使用/ Conn更改配置设置的位置并在那里设置不同的设置,或者从配置中完全删除变量,以便可以在dtexec / set参数中设置它。
如果您想要默认并覆盖,则必须使用/ conn参数并更改设置的位置。
e.g。
“C:\ Program Files(x86)\ Microsoft SQL Server \ 100 \ DTS \ Binn \ DTExec.exe”
/文件“C:\ Path \ To \ My \ Package \ Import Types.dtsx”
/ Conn Connection1;“Provider = SQLNCLI10; Server = MYSERVER; Database = DB_ONE; Uid = USERNAME; Pwd = PASSWORD;”
/ Conn Connection2;“Provider = SQLNCLI10; Server = MYSERVER; Database = DB_TWO; Uid = USERNAME; Pwd = PASSWORD;”
似乎有人认为这比2005年的方法更好。在我打他之前,我想知道他的理由。