Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 使用DTEXEC/SET覆盖SSIS 2008中的包配置变量_Sql Server 2008_Etl_Ssis_Ssis 2005 - Fatal编程技术网

Sql server 2008 使用DTEXEC/SET覆盖SSIS 2008中的包配置变量

Sql server 2008 使用DTEXEC/SET覆盖SSIS 2008中的包配置变量,sql-server-2008,etl,ssis,ssis-2005,Sql Server 2008,Etl,Ssis,Ssis 2005,我在将2005包转换到2008年时遇到问题-在2008年,配置为使用配置筛选器的包变量(例如从[SSIS配置]填充)似乎不会遵守dtexec.exe提供的/SET命令,以在运行时覆盖包变量值 这里记录了这个问题 最直接的解决方案是什么?我想要旧的SSIS 2005行为,其中,包变量最初是从[SSIS配置]加载的,但如果显式调用/设置,我可以在运行时重写它 我有一个解决方案,但希望有一个更好的解决方案-我基本上有两个版本的我想要的变量…例如NETWORK\u PATH,NETWORK\u PATH

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

这里记录了这个问题

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


我有一个解决方案,但希望有一个更好的解决方案-我基本上有两个版本的我想要的变量…例如NETWORK\u PATH,NETWORK\u PATH\u CONFIG…我在NETWORK\u PATH上放了一个表达式来使用NETWORK\u PATH\u CONFIG(这个变量将从[SSIS配置]填充)如果首次计算表达式时网络路径的值在运行时最初为NULL,则使用提供的值(可能是由dtexec/SET提供的)

您可以使用/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” /连接1;“Provider=SQLNCLI10;Server=MYSERVER;Database=DB_ONE;Uid=USERNAME;Pwd=PASSWORD;” /连接2;“Provider=SQLNCLI10;Server=MYSERVER;Database=DB\u TWO;Uid=USERNAME;Pwd=PASSWORD;”


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

您可以使用/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” /连接1;“Provider=SQLNCLI10;Server=MYSERVER;Database=DB_ONE;Uid=USERNAME;Pwd=PASSWORD;” /连接2;“Provider=SQLNCLI10;Server=MYSERVER;Database=DB\u TWO;Uid=USERNAME;Pwd=PASSWORD;”


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

Ouch-这肯定是我没有考虑过的解决方案,但是必须维护单独的DB实例,仅仅包含单独的值集不是一个理想的解决方案,但感谢我没有意识到这种技术。最终,我采用了我最初的方法,对我想要配置的每个变量都有一个单独的“覆盖”版本,原始变量的表达式形式为:ISNULL(@[User::MAIL_RECIPIENTS_override])@[User::MAIL_RECIPIENTS]:@[User::MAIL_RECIPIENTS_OVERRIDE]哎哟-这绝对是我没有考虑过的解决方案,但必须维护单独的数据库实例,仅仅包含单独的值集并不是一个理想的解决方案,但感谢我没有意识到这种技术。最终,我采用了我最初的方法,对我想要配置的每个变量都有一个单独的“覆盖”版本,原始变量的表达式形式为:ISNULL(@[User::MAIL_RECIPIENTS_override])@[用户::邮件收件人]:@[用户::邮件收件人\u覆盖]