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.