sql >> Database >  >> RDS >> Sqlserver

Hetzelfde SSIS-pakket met verschillende parameters op verschillende tijdstippen uitvoeren

De uitdaging bij het gebruik van een configuratiebestandsbenadering is dat u het bestand voortdurend moet wijzigen. SSIS zou het configuratiebestand niet opnieuw laden nadat het is gestart, dus het is mogelijk dat je om 20:05 en 20:35 uur taken hebt die de configuratiebestanden verwisselen, maar dat gaat op een gegeven moment rommelig worden en kapot gaan.

Ik zou deze situatie afhandelen met opdrachtregelvariabelen (/set optie in dtexec ). Als u het pakket vanaf de opdrachtregel zou uitvoeren, zou het er ongeveer zo uitzien dtexec.exe /file MyPackage.dtsx Zelfs als je SQL Agent gebruikt, bouwt het achter de schermen die opdrachtregelargumenten op.

Bij deze benadering wordt ervan uitgegaan dat u twee verschillende taken maakt (vs. 1 taken die 2x per dag worden gepland). AgentMyPackage2011 heeft een taakstap van SSIS die resulteert in

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

en AgentMyPackage2012 heeft een taakstap van SSIS die resulteert in

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

Via de GUI zou het er ongeveer zo uitzien:

Er is geen GUI of selector voor de eigenschap die u wilt configureren. Aangezien u echter al een .dtsConfig-bestand voor uw pakket hebt gemaakt, opent u dat bestand en zoekt u naar een sectie zoals

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

Het bestand heeft al het pad naar het "ding" dat u probeert te configureren, dus sla dat op in uw aanroepende programma en schakel vervolgens het jaargedeelte van de pakketconfiguratie uit.

Ten slotte een link naar SSIS-configuratievoorrang omdat er verschillen zijn in het model van 2005 versus 2008. Ik zie dat je 2008 hebt aangegeven in je ticket, maar voor toekomstige lezers, als je zowel /SET als een configuratiebron (xml, sql-server, register, omgevingsvariabele) gebruikt, varieert de volgorde van bewerkingen tussen versies.




  1. Hoe de fout 'fe_sendauth:geen wachtwoord opgegeven' in Rails op te lossen met PostgreSQL?

  2. 6 manieren om dubbele rijen met een primaire sleutel in Oracle te verwijderen

  3. NEXT_DAY() Functie in Oracle

  4. Hoe maak ik een gebruiker in SQL-Server die slechts toegang heeft tot één tabel en alleen rijen kan invoegen?