Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment exécuter des packages dtsx via la ligne de commande

En faisant une supposition ici pendant que j'attends une réponse au commentaire, généralement lorsqu'un paquet fonctionne bien dans BIDS mais ne fonctionne pas à partir de la ligne de commande, je trouve que c'est lié à une incompatibilité 64/32 bits.

Utilisez-vous Excel, Access ou autre chose qui sous les feuilles utilise le pilote JET ? Cela ne fonctionne qu'en mode 32 bits.

Sur un système d'exploitation 64 bits, par défaut, lorsque vous créez une nouvelle connexion ODBC, vous la créez dans l'espace de noms 64 bits auquel la version 32 bits ne pourra pas accéder ?

Utilisez-vous des pilotes Informix ou UDB/DB2 ? Je n'en ai trouvé que 32 versions.

Exécuter un package à partir de la ligne de commande

dtexec est le mécanisme de ligne de commande pour exécuter un package SSIS. Il existe en 2 versions pour les systèmes d'exploitation 64 bits, les deux sont nommés dtexec et généralement le 32 bits est référencé dans la variable d'environnement Windows Path

Sur un système d'exploitation 64 bits, le chemin par défaut vers le 64 bits serait "c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

Toujours sur un système d'exploitation 64 bits, le chemin vers la version 32 serait "c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"

Pour exécuter un package nommé FooBar.dtsx qui réside dans C:\Src\MyProject\MyProject, l'invocation serait

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

Si ce package réside sur SQL Server (DEVSQL01) dans le dossier MyProject, ce serait l'appel pour exécuter le même package.

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

Modifier

Pour appliquer une configuration, vous devez spécifier le /CONF possibilité

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

En regardant vos commentaires, la seule différence entre notre utilisation est que vous avez tout mis entre guillemets. Essayez-le sans les guillemets précédents et finaux.