如何通过命令行执行dtsx包

mah*_*esh 11 ssis visual-studio-2010 sql-server-2008

当我通过命令行执行dtsx包时,我触发了以下错误说

1.找不到连接,当找不到特定的连接元素时,连接集合会抛出错误

2.无法解析程序包"xxxxxxx"中对象的程序包路径.验证程序包路径是否有效

3.包路径引用了无法找到的对象,当尝试解析无法找到的对象的包路径时会发生这种情况

但是当我通过商业智能开发工作室运行包时,这种方法很好.

bil*_*nkc 33

在我等待评论的答案时猜测一下,通常当一个软件包在BIDS中正常运行但是不能从命令行运行时,我发现它与64/32位不兼容有关.

您使用Excel,Access或工作表下使用JET驱动程序的任何其他内容吗?这只适用于32位模式.

在64位操作系统上,默认情况下,在创建新的ODBC连接时,您将在64位命名空间中创建它,而32位版本将无法访问该命名空间?

您使用的是Informix或UDB/DB2驱动程序吗?我只发现了32个版本.

从命令行运行包

dtexec是运行SSIS包的命令行机制.它有两种版本,适用于64位操作系统,两者都有名称dtexec,通常在Windows Path环境变量中引用32位

在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"

要运行位于C:\ Src\MyProject\MyProject中的名为FooBar.dtsx的包,调用将是

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

如果该包存在于MyProject文件夹中的SQL Server(DEVSQL01)上,则这将是运行相同包的调用.

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

编辑

要应用配置,您需要指定该/CONF选项

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

看看你的评论,我们的用法之间的唯一区别是你用双引号包装了所有内容.尝试没有前面和后面的引用.

  • 谢谢这个命令适合我""c:\ Program Files(x86)\ Microsoft SQL Server\100\DTS\Binn\DTExec.exe"/ file C:\ Src\MyProject\MyProject\FooBar.dtsx",关键问题是我无法参考配置dtsConfig文件 (2认同)