如何使用ssms或ssis包将SSIS包从MSDB数据库复制到文件系统

时间:2017-12-24 21:06:51

标签: sql-server ssis etl sql-server-data-tools

是否有办法使用SSISSSMS包将SSIS包从MSDB数据库复制到文件系统。

我的尝试在哪里:

  1. dtutil

    中使用xp_cmdshellSSMS QUERY一起使用
    EXEC xp_cmdshell 'dtutil  /sourceserver  SERVERNAME\INSTANCENAME /SQL "\TestingData\Package" /copy file;"c:\Package.dtsx"'
    
  2. 结果:

    enter image description here

    注意:使用xp_cmdshell而不使用dtutil时没问题,因为我成功了'文件复制'。

    1. 我的第二次尝试是相同的,但使用SSIS组件Execute Process task
    2. enter image description here

      但结果是:

        

      错误:0xC0029151在执行进程任务,执行进程任务:执行“C:\ Windows \ System32 \ cmd.exe”“dtutil / sourceserver servername \ instancename / SQL”\ TestingData \ Package“/ copy file;”c :\ Package.dtsx“”at“”,进程退出代码为“1”,而预期为“0”。   任务失败:执行流程任务

1 个答案:

答案 0 :(得分:0)

建议

有许多事情需要考虑:

  1. 在第一个屏幕截图中,您获得的输出是访问被拒绝,因此首先检查您是否对C:\驱动器具有写入权限,或尝试复制到另一个路径。

  2. 尝试重新排序您传递给dtutil工具的参数并删除包路径前的\

    EXEC xp_cmdshell 'dtutil /SQL TestingData\Package /sourceserver SERVERNAME\INSTANCENAME /Copy File;"c:\Package.dtsx"'
    
  3. 在上面的命令中,您必须对要连接的SQL实例进行Windows身份验证,因此,如果您没有此类身份验证,请尝试使用SQL身份验证:

    EXEC xp_cmdshell 'dtutil /SQL TestingData\Package /SourceServer SERVERNAME\INSTANCENAME /SourceUser Monkey_User /SourcePassword P@$$word /Copy file;"c:\Package.dtsx"'
    
  4. 参考