Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Executando o mesmo pacote SSIS com parâmetros diferentes em momentos diferentes


O desafio de usar uma abordagem de arquivo de configuração é que você precisaria modificar constantemente o arquivo. O SSIS não recarregaria o arquivo de configuração após o início, para que você pudesse ter trabalhos às 20h05 e às 20h35 que trocam arquivos de configuração, mas isso vai ficar confuso e quebrar em algum momento.

Eu lidaria com essa situação com variáveis ​​de linha de comando (/set option in dtexec ). Se você estivesse executando o pacote a partir da linha de comando, seria algo como dtexec.exe /file MyPackage.dtsx Mesmo se você estiver usando o SQL Agent, nos bastidores ele está construindo esses argumentos de linha de comando.

Essa abordagem pressupõe que você crie dois trabalhos diferentes (vs 1 trabalho agendado 2x por dia).AgentMyPackage2011 tem uma etapa de trabalho do SSIS que resulta em
  • dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2011\"

e AgentMyPackage2012 tem uma etapa de trabalho do SSIS que resulta em
  • dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2012\"

Através da GUI, seria algo como



Não há GUI ou seletor para a propriedade que você deseja configurar. No entanto, como você já criou um arquivo .dtsConfig para seu pacote, abra esse arquivo e procure uma seção como
<Configuration ConfiguredType="Property" Path="\Package.Variables[User::Year].Properties[Value]" ValueType="Int32">
<ConfiguredValue>2009</ConfiguredValue>

O arquivo já tem o caminho para a "coisa" que você está tentando configurar, então insira isso no seu programa de chamada e, em seguida, desative a parte do ano da configuração do pacote.

Por fim, um link para Precedência de configuração do SSIS pois existem diferenças no modelo 2005 vs 2008. Vejo que você indicou 2008 em seu ticket, mas para futuros leitores, se você estiver usando /SET e uma fonte de configuração (xml, sql server, registro, variável de ambiente) a ordem das operações varia entre as versões.