sql >> Databasteknik >  >> RDS >> Sqlserver

Exekvera samma SSIS-paket med olika parametrar vid olika tidpunkter

Utmaningen med att använda en konfigurationsfilsmetod är att du hela tiden skulle behöva modifiera filen. SSIS skulle inte ladda om konfigurationsfilen efter att den startat så du kan tänkas ha 20:05 och 20:35 jobb som byter konfigurationsfiler men det kommer att bli rörigt och gå sönder någon gång.

Jag skulle hantera den här situationen med kommandoradsvariabler (/set option i dtexec ). Om du körde paketet från kommandoraden skulle det se ut ungefär som dtexec.exe /file MyPackage.dtsx Även om du använder SQL Agent, bygger den bakom kulisserna dessa kommandoradsargument.

Detta tillvägagångssätt förutsätter att du skapar två olika jobb (mot 1 jobb schemalagt 2x om dagen). AgentMyPackage2011 har ett jobbsteg av SSIS som resulterar i

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

och AgentMyPackage2012 har ett jobbsteg av SSIS som resulterar i

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

Genom det grafiska användargränssnittet skulle det se ut ungefär som

Det finns inget gränssnitt eller väljare för egenskapen du vill konfigurera. Men eftersom du redan har skapat en .dtsConfig-fil för ditt paket, öppna den filen och leta efter ett avsnitt som

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

Filen har redan sökvägen till "saken" som du försöker konfigurera så att du slår in det i ditt anropsprogram och stäng sedan av årsdelen av paketkonfigurationen.

Slutligen en länk till SSIS Configuration Precedence eftersom det finns skillnader mellan 2005 och 2008 års modell. Jag ser att du angav 2008 i din biljett men för framtida läsare, om du använder både /SET och en konfigurationskälla (xml, sql-server, register, miljövariabel) varierar operationsordningen mellan versionerna.




  1. Hur bygger man nästa och tidigare länkar med php?

  2. Kombinera mysql-frågor som återvinner flera självanslutningar

  3. Återställ dump på fjärrmaskinen

  4. Java SQL-undantag:Stängd resultatuppsättning:nästa även om varken anslutning eller resultatuppsättning stängs