Problém s použitím přístupu konfiguračního souboru spočívá v tom, že byste museli soubor neustále upravovat. SSIS by znovu nenačetl konfigurační soubor po jeho spuštění, takže byste mohli mít úlohy ve 20:05 a 20:35, které vymění konfigurační soubory, ale to se v určitém okamžiku zamotá a přeruší.
Tuto situaci bych řešil pomocí proměnných příkazového řádku (/set option in dtexec ). Pokud byste balíček spouštěli z příkazového řádku, vypadalo by něco jako dtexec.exe /file MyPackage.dtsx
I když používáte SQL Agent, v zákulisí vytváří tyto argumenty příkazového řádku.
Tento přístup předpokládá, že vytvoříte dvě různé úlohy (vs. 1 úloha naplánovaná 2x denně). AgentMyPackage2011 má krok úlohy SSIS, jehož výsledkem je
dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2011\"
a AgentMyPackage2012 má krok úlohy SSIS, jehož výsledkem je
dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2012\"
Přes GUI by to vypadalo nějak podobně
Pro vlastnost, kterou chcete konfigurovat, neexistuje žádné GUI ani selektor. Protože jste však již pro svůj balíček vytvořili soubor .dtsConfig, otevřete tento soubor a vyhledejte sekci jako
<Configuration ConfiguredType="Property" Path="\Package.Variables[User::Year].Properties[Value]" ValueType="Int32">
<ConfiguredValue>2009</ConfiguredValue>
Soubor již má cestu k „věci“, kterou se pokoušíte nakonfigurovat, tak, že ji vrazíte do svého volajícího programu a poté vypněte část konfigurace balíčku pro rok.
Nakonec odkaz na Prednost konfigurace SSIS protože existují rozdíly v modelu 2005 a 2008. Vidím, že jste ve svém lístku uvedli rok 2008, ale pro budoucí čtenáře, pokud používáte /SET i zdroj konfigurace (xml, sql server, registr, proměnná prostředí), pořadí operací se mezi verzemi liší.