Догадываясь здесь, пока я жду ответа на комментарий, обычно, когда пакет работает нормально в BIDS, но не работает из командной строки, я обнаружил, что это связано с несовместимостью 64/32 бита.
Используете ли вы Excel, Access или что-то еще, что под листами использует драйвер JET? Это работает только в 32-битном режиме.
В 64-разрядной ОС по умолчанию при создании нового подключения ODBC вы будете создавать его в 64-разрядном пространстве имен, к которому 32-разрядная версия не сможет получить доступ?
Используете ли вы драйверы Informix или UDB / DB2? Я только когда-либо нашел 32 версии тех.
Запуск пакета из командной строки
dtexec - механизм командной строки для запуска пакета служб SSIS. Он поставляется в двух вариантах для 64-битной ОС, обе называются dtexec
, и обычно на 32-битную версию ссылается переменная среды Windows Path
В 64-битной ОС путь по умолчанию для 64-битной версии будет "c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"
Все еще в 64-битной ОС путь к 32-й версии будет "c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"
Чтобы запустить пакет с именем FooBar.dtsx, который находится в C: \ Src \ MyProject \ MyProject, вызов будет
"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx
Если этот пакет находится на SQL Server (DEVSQL01) в папке MyProject, это будет вызов для запуска того же пакета.
"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /SQL \MyProject\FooBar /SERVER DEVSQL01
Редактировать
Чтобы применить конфигурацию, вам нужно указать опцию /CONF
"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx /CONF C:\FooBar.dtsConfig
Глядя на ваши комментарии, единственное отличие нашего использования заключается в том, что вы заключили все в двойные кавычки. Попробуйте без предшествующей и завершающей цитаты.