Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ausführen desselben SSIS-Pakets mit unterschiedlichen Parametern zu unterschiedlichen Zeiten

Die Herausforderung bei der Verwendung eines Konfigurationsdateiansatzes besteht darin, dass Sie die Datei ständig ändern müssten. SSIS würde die Konfigurationsdatei nach dem Start nicht neu laden, so dass Sie möglicherweise Jobs um 20:05 und 20:35 Uhr haben könnten, die Konfigurationsdateien austauschen, aber das wird irgendwann chaotisch werden und kaputt gehen.

Ich würde diese Situation mit Befehlszeilenvariablen behandeln (/set option in dtexec ). Wenn Sie das Paket über die Befehlszeile ausführen, sieht es in etwa so aus:dtexec.exe /file MyPackage.dtsx Selbst wenn Sie den SQL-Agenten verwenden, werden diese Befehlszeilenargumente im Hintergrund erstellt.

Bei diesem Ansatz wird davon ausgegangen, dass Sie zwei verschiedene Jobs erstellen (im Gegensatz zu 1 Job, der zweimal täglich geplant ist). AgentMyPackage2011 hat einen Jobschritt von SSIS, der zu

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

und AgentMyPackage2012 hat einen SSIS-Auftragsschritt, der zu

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

Über die GUI würde es ungefähr so ​​​​aussehen

Es gibt keine GUI oder Auswahl für die Eigenschaft, die Sie konfigurieren möchten. Da Sie jedoch bereits eine .dtsConfig-Datei für Ihr Paket erstellt haben, öffnen Sie diese Datei und suchen Sie nach einem Abschnitt wie

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

Die Datei enthält bereits den Pfad zu dem "Ding", das Sie zu konfigurieren versuchen, also geben Sie das in Ihr aufrufendes Programm ein und schalten Sie dann den Jahresteil der Paketkonfiguration aus.

Schließlich ein Link zu SSIS-Konfigurationsvorrang da es Unterschiede zwischen dem Modell 2005 und 2008 gibt. Wie ich sehe, haben Sie in Ihrem Ticket 2008 angegeben, aber für zukünftige Leser:Wenn Sie sowohl /SET als auch eine Konfigurationsquelle (XML, SQL-Server, Registrierung, Umgebungsvariable) verwenden, variiert die Reihenfolge der Vorgänge zwischen den Versionen.