2011-12-05 11 views
8

Ho un pacchetto SSIS in esecuzione a 8:00 di sera per l'anno 2011.esecuzione dello stesso pacchetto SSIS con parametri diversi in tempi diversi

Vorrei eseguire lo stesso pacchetto a 8:30 per la Anno 2010.

Ho creato un file di configurazione del pacchetto SSIS e accetto "Anno" come parametro. Ogni volta che corro, ho bisogno di aprire un file, cambiare il valore ed eseguirlo.

È possibile impostare la pianificazione e impostare il valore dell'anno in modo dinamico?

Oppure utilizzare 2 file di configurazione diversi è l'unico modo per risolverlo?

Grazie a tutti.

risposta

16

La sfida con l'utilizzo di un approccio al file di configurazione è che è necessario modificare costantemente il file. SSIS non ricaricherà il file di configurazione dopo l'avvio in modo che sia possibile avere i lavori 8:05 e 8:35 PM che scambiano i file di configurazione, ma a un certo punto diventerà disordinato e si interromperà.

Vorrei gestire questa situazione con le variabili della riga di comando (/set option in dtexec). Se stavi eseguendo il pacchetto dalla riga di comando, sarebbe simile a dtexec.exe /file MyPackage.dtsx Anche se stai usando SQL Agent, dietro le quinte sta costruendo quegli argomenti da riga di comando.

Questo approccio presuppone la creazione di due lavori diversi (rispetto a 1 lavori programmati 2x al giorno). AgentMyPackage2011 ha un passaggio di processo di SSIS che si traduce in

  • dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2011\"

e AgentMyPackage2012 ha un passaggio di processo di SSIS che si traduce in

  • dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2012\"

Attraverso la GUI, assomiglierebbe a SQL Agent Set values tab

SQL Agent Command line tab

Non v'è alcun GUI o il selettore per la proprietà che si desidera configurare. Tuttavia, dal momento che hai già creato un file .dtsConfig per il pacchetto, aprire il file e cercare una sezione come

<Configuration ConfiguredType="Property" Path="\Package.Variables[User::Year].Properties[Value]" ValueType="Int32"> 
<ConfiguredValue>2009</ConfiguredValue> 

Il file ha già il percorso per la "cosa" si sta tentando di configurare in modo immettetelo nel programma chiamante e quindi disattivate la parte relativa all'anno della configurazione del pacchetto.

Infine, un collegamento a SSIS Configuration Precedence in quanto vi sono differenze nel modello 2005 vs 2008. Vedo che hai indicato il 2008 nel tuo ticket, ma per i futuri lettori, se utilizzi sia/SET sia una fonte di configurazione (xml, sql server, registro, variabile di ambiente) l'ordine delle operazioni varia tra le versioni.

Problemi correlati