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

So führen Sie dtsx-Pakete über die Befehlszeile aus

Während ich hier auf eine Antwort auf den Kommentar warte, kann ich nur raten. Wenn ein Paket in BIDS gut läuft, aber nicht über die Befehlszeile funktioniert, hängt es meiner Meinung nach mit der 64/32-Bit-Inkompatibilität zusammen.

Verwenden Sie Excel, Access oder etwas anderes, das unter den Blättern den JET-Treiber verwendet? Das funktioniert nur im 32-Bit-Modus.

Wenn Sie auf einem 64-Bit-Betriebssystem eine neue ODBC-Verbindung erstellen, erstellen Sie diese standardmäßig im 64-Bit-Namespace, auf den die 32-Bit-Version nicht zugreifen kann?

Verwenden Sie Informix- oder UDB/DB2-Treiber? Ich habe nur 32 Versionen davon gefunden.

Ein Paket über die Befehlszeile ausführen

dtexec ist der Befehlszeilenmechanismus zum Ausführen eines SSIS-Pakets. Es gibt 2 Varianten für 64-Bit-Betriebssysteme, beide heißen dtexec und im Allgemeinen wird das 32-Bit in der Windows-Pfad-Umgebungsvariable referenziert

Auf einem 64-Bit-Betriebssystem wäre der Standardpfad zur 64-Bit-Version "c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

Auf einem 64-Bit-Betriebssystem wäre der Pfad zur 32-Version immer noch "c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

Um ein Paket namens FooBar.dtsx auszuführen, das sich in C:\Src\MyProject\MyProject befindet, wäre der Aufruf

"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx

Wenn sich dieses Paket auf SQL Server (DEVSQL01) im Ordner MyProject befindet, wäre dies der Aufruf zum Ausführen desselben Pakets.

"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /SQL \MyProject\FooBar /SERVER DEVSQL01

Bearbeiten

Um eine Konfiguration anzuwenden, müssen Sie /CONF angeben Möglichkeit

"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx /CONF C:\FooBar.dtsConfig

Wenn Sie sich Ihre Kommentare ansehen, besteht der einzige Unterschied zwischen unserer Verwendung darin, dass Sie alles in doppelte Anführungszeichen gesetzt haben. Versuchen Sie es ohne das vorangestellte und abschließende Anführungszeichen.