2

我在将 2005 包转换到 2008 时遇到问题 - 似乎在 2008 年,配置为使用配置过滤器的包变量(例如从 [SSIS 配置] 填充)将不支持 dtexec.exe 提供的 /SET 命令来覆盖运行时的包变量值。

该问题记录在此处http://dougbert.com/blogs/dougbert/archive/2009/04/07/understand-how-ssis-package-configurations-are-applied.aspx

对此最直接的解决方案是什么?我想要旧的 SSIS 2005 行为,其中包变量最初是从 [SSIS 配置] 加载的,但如果我显式调用 /SET,我可以在运行时覆盖它

我有一个变通办法,但我希望有一个更好的解决方案 - 我基本上有 2 个我想要的变量版本...例如 NETWORK_PATH、NETWORK_PATH_CONFIG ...我在 NETWORK_PATH 上放置了一个表达式以使用 NETWORK_PATH_CONFIG(这个变量将被填充来自 [SSIS 配置])如果 NETWORK_PATH 的值在运行时首次评估表达式时最初为 NULL,否则使用提供的值(可能由 dtexec /SET)

4

1 回答 1

0

您可以使用 /Conn 更改配置设置的位置并在那里进行不同的设置,或者从配置中完全删除变量,以便可以在 dtexec /set 参数中设置它。

如果你想有一个默认值和覆盖,那么你将不得不使用 /conn 参数并更改设置的位置。

例如

"C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"
/File "C:\Path\To\My\Package\Import Types.dtsx" /Conn Connection1;"Provider= SQLNCLI10;服务器=MYSERVER;数据库=DB_ONE;Uid=用户名;密码=密码;" /Conn Connection2;"Provider=SQLNCLI10;Server=MYSERVER;Database=DB_TWO;Uid=USERNAME;Pwd=PASSWORD;"

似乎有人认为这比 2005 年的方法更好。在我打他之前,我想知道他的理由。

于 2011-09-26T16:33:17.330 回答