使用dtexec实用程序执行SSIS包

时间:2009-04-30 05:16:45

标签: ssis

我已经制作了一个SSIS包来创建一个XML文件,它可以在Visual Studio中正常工作,但是当我尝试使用dtexec /f "C:\OakeyCreek.dtsx"在cmd提示符下运行时会抛出错误

  

SSIS包“TestOakey”因退出代码失败:1

在包中,sqltask将resultset作为XML提供,脚本任务创建xml文件。

我做了一些研究,没有脚本任务的同一个包运行良好的工作室和cmd提示。我怀疑脚本任务有问题,因为我在同一台机器上安装了VS2005和VS2008。

知道如何解决这个问题吗?

确切错误ms弹出窗口是......

  

此应用程序的注册信息需要更新。要更新,请以管理员身份登录并运行此命令。

     

“C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ VSTA.exe”/ HostID SSIS_ScriptTask / setup

我的操作系统是Vista

2 个答案:

答案 0 :(得分:6)

注意:编辑提供答案!

因此,您已设置SQL Server代理作业,现在无法写入文件系统。这是预期的行为,因为SQL Server代理使用 SQL Server凭据来启动作业, Windows凭据。那么,你要做的就是:

  1. 在SQL Server Management Studio的数据库服务器的Security文件夹下,找到Credentials文件夹。
  2. 右键单击凭据并点击New Credential。
  3. 像你一样设置凭据。
  4. 展开SQL Server代理,右键单击“代理”,然后单击“新建代理”。
  5. 使用您刚刚创建的凭据设置代理服务器。
  6. 启用Proxy以拥有SSIS子系统(如果是管理员,请检查所有子系统)。
  7. 编辑调用SSIS包的作业上的步骤。
  8. 将“运行方式”字段从SQL Server代理更改为您刚刚设置的代理(如果您做得对,它将是下拉列表中唯一的其他选择。)
  9. 你应该好好去!
  10. 干杯,
    埃里克

答案 1 :(得分:2)

您正在使用SSIS 2005创建程序包,但是使用SSIS 2008中的DTEXEC运行它 - 您可能同时安装了SSIS 2005和2008,并且DTEXEC 2008首先出现在路径中。

要使用DTEXEC 2005,请指定完整路径,例如 “c:\ program files \ Microsoft Sql Server \ 90 \ dts \ binn \ dtexec.exe”/ f Package.dtsx

理论上,DTEXEC 2008也应该能够运行该软件包(它应该将其升级到SSIS 2008格式),但版本之间可能存在漏洞和不兼容性。此外,SSIS 2008中的脚本任务设置似乎有问题。为什么不按照错误消息中的说明操作:以管理员身份登录并使用提升的命令提示符运行 -

“C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ VSTA.exe”/ HostID SSIS_ScriptTask / setup