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