Mit der Änderung der Paketkonfigurationen im Jahr 2008 im Vergleich zu 2005, als ich / ConfigFile Something.dtsConfig in der Befehlszeile angegeben habe, behalten die im Paket definierten Variablen ihre Entwurfszeitwerte bei, anstatt die Einstellungen aus der Konfigurationsdatei zu verwenden.
Ich bin mir nicht ganz sicher, wie ich die externe Konfigurationsdatei überhaupt verwenden kann. Ich habe Artikel gelesen, die besagen, dass nur festgelegte Entwurfszeitkonfigurationen das Laden der externen Datei überschreiben. Bedeutet dies, dass ich die Variablen in leere Zeichenfolgen ändern kann und sie dann überschrieben werden? Ich kann die Variable nicht vollständig löschen! Was ist mit ganzen Zahlen?
Ich habe Artikel gesehen, in denen das Ausschalten mithilfe von Paketkonfigurationen im Paket erwähnt wird.
Ich kann den SSIS-Paketeditor oder einen XML-Editor verwenden, um den Pfad der Konfigurationsdatei im Paket zu ändern, und dann werden die Einstellungen dieser Datei "last" verwendet (unabhängig von der externen / ConfigFile-Option), aber ich möchte nicht Paket ändern. Ich möchte ein Paket mit Test.dtsConfig und Production.dtsConfig und kann hin und her tauschen, ohne das Paket zu ändern.
Was ist der empfohlene Weg, dies jetzt zu tun?
quelle
Antworten:
Sie müssen berücksichtigen, dass das Paket bei der Ausführung mit BIDS zuerst den Variablenwert aus der Konfigurationsdatei übernimmt. Nur wenn die Konfigurationsdatei nicht vorhanden ist, wird eine Warnung ausgegeben und der Wert wird aus dem Paket übernommen.
Jetzt ist die Situation in der Befehlszeile etwas anders. Sie können die folgenden Situationen haben:
Führen Sie das Paket in cmd-Zeile aus, ohne dass eine Konfigurationsdatei ausgewählt wurde:
Führen Sie das Paket in cmd-Zeile aus, ohne dass eine Konfigurationsdatei ausgewählt wurde, jedoch mit der im Aufruf festgelegten Variablen:
Führen Sie das Paket in cmd-Zeile mit einer neuen Konfigurationsdatei aus (sagen wir DEV statt Prod):
Führen Sie das Paket in cmd-Zeile mit einer neuen Konfigurationsdatei und einer SET-Anweisung im Aufruf aus:
Kurz gesagt, wenn Sie eine neue Konfigurationsdatei verwenden möchten, müssen Sie die alte umbenennen / verschieben und das Paket mit / configFile aufrufen. Wenn dies nicht ausreicht und Sie sogar eine neue Konfigurationsdatei überschreiben möchten, verwenden Sie die Variable / SET. Oder Sie können eine beliebige Konfigurationsdatei umgehen und einfach / SET-Anweisungen im Batch-Aufruf verwenden.
Hoffentlich bringt das etwas Licht in Ihre Möglichkeiten.
quelle