sql >> Database teknologi >  >> RDS >> Sqlserver

Udførelse af den samme SSIS-pakke med forskellige parametre på forskellige tidspunkter

Udfordringen med at bruge en konfigurationsfiltilgang er, at du konstant skal ændre filen. SSIS ville ikke genindlæse konfigurationsfilen, efter den er startet, så du kunne tænkes at have 8:05 og 8:35 PM job, der bytter konfigurationsfiler, men det bliver rodet og går i stykker på et tidspunkt.

Jeg ville håndtere denne situation med kommandolinjevariabler (/set option i dtexec ). Hvis du kørte pakken fra kommandolinjen, ville den ligne dtexec.exe /file MyPackage.dtsx Selvom du bruger SQL Agent, bygger den bag kulisserne disse kommandolinjeargumenter.

Denne tilgang antager, at du opretter to forskellige job (i forhold til 1 job planlagt 2x om dagen). AgentMyPackage2011 har et jobtrin af SSIS, der resulterer i

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

og AgentMyPackage2012 har et jobtrin af SSIS, der resulterer i

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

Gennem GUI'en ville det ligne noget

Der er ingen GUI eller vælger for den ejendom, du ønsker at konfigurere. Men da du allerede har oprettet en .dtsConfig-fil til din pakke, skal du åbne den fil og se efter en sektion som

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

Filen har allerede stien til den "ting", du forsøger at konfigurere, så du kan slå det ind i dit opkaldsprogram, og derefter slå årsdelen fra i pakkekonfigurationen.

Til sidst et link til SSIS Configuration Precedence da der er forskelle i 2005 vs 2008 modellen. Jeg kan se, at du har angivet 2008 i din billet, men for fremtidige læsere, hvis du bruger både /SET og en konfigurationskilde (xml, sql-server, registreringsdatabase, miljøvariabel), varierer rækkefølgen af ​​operationer mellem versionerne.




  1. SQL-lagret procedure til at kontrollere værdien ja/nej i en tabel og udføre sql

  2. Opdel en partition i to i SQL Server (T-SQL)

  3. Bedste forespørgsel til at ramme Oracle-indeks med binds og null-værdier

  4. Forbinder codeigniter til mysql og oracle i samme applikation