如何使用 ssms 或 ssis 包将 SSIS 包从 MSDB 数据库复制到文件系统
How to Copy SSIS Package from MSDB Database to File System using ssms or ssis Package
有没有办法使用 SSMS
或 SSIS
包将 SSIS
包从 MSDB 数据库复制到文件系统。
我的尝试:
在 SSMS QUERY
中使用 dtutil
和 xp_cmdshell
EXEC xp_cmdshell 'dtutil /sourceserver SERVERNAME\INSTANCENAME /SQL "\TestingData\Package" /copy file;"c:\Package.dtsx"'
结果:
注意:在没有 dtutil
的情况下使用 xp_cmdshell
没有问题,因为我成功地 'File Copy'.
- 我的第二次尝试是相同的,但使用
SSIS
组件 Execute Process task
。
但结果是:
Error: 0xC0029151 at Execute Process Task, Execute Process Task: In Executing "C:\Windows\System32\cmd.exe" "dtutil /sourceserver servername\instancename /SQL "\TestingData\Package" /copy file;"c:\Package.dtsx"" at "", The process exit code was "1" while the expected was "0".
Task failed: Execute Process Task
建议
需要考虑的事情很多:
在第一个屏幕截图中,您得到的输出是 访问被拒绝,所以首先检查您是否对 C:\
具有写权限驱动器,或者尝试复制到另一个路径。
尝试重新排序传递给 dtutil 工具的参数并删除包路径前的 \
:
EXEC xp_cmdshell 'dtutil /SQL TestingData\Package /sourceserver SERVERNAME\INSTANCENAME /Copy File;"c:\Package.dtsx"'
在上面的命令中,您必须对要连接的 SQL 实例进行 windows 身份验证,因此如果您没有此类身份验证,尝试使用 SQL 身份验证:
EXEC xp_cmdshell 'dtutil /SQL TestingData\Package /SourceServer SERVERNAME\INSTANCENAME /SourceUser Monkey_User /SourcePassword P@$$word /Copy file;"c:\Package.dtsx"'
参考资料
有没有办法使用 SSMS
或 SSIS
包将 SSIS
包从 MSDB 数据库复制到文件系统。
我的尝试:
在
中使用SSMS QUERY
dtutil
和xp_cmdshell
EXEC xp_cmdshell 'dtutil /sourceserver SERVERNAME\INSTANCENAME /SQL "\TestingData\Package" /copy file;"c:\Package.dtsx"'
结果:
注意:在没有 dtutil
的情况下使用 xp_cmdshell
没有问题,因为我成功地 'File Copy'.
- 我的第二次尝试是相同的,但使用
SSIS
组件Execute Process task
。
但结果是:
Error: 0xC0029151 at Execute Process Task, Execute Process Task: In Executing "C:\Windows\System32\cmd.exe" "dtutil /sourceserver servername\instancename /SQL "\TestingData\Package" /copy file;"c:\Package.dtsx"" at "", The process exit code was "1" while the expected was "0". Task failed: Execute Process Task
建议
需要考虑的事情很多:
在第一个屏幕截图中,您得到的输出是 访问被拒绝,所以首先检查您是否对
C:\
具有写权限驱动器,或者尝试复制到另一个路径。尝试重新排序传递给 dtutil 工具的参数并删除包路径前的
\
:EXEC xp_cmdshell 'dtutil /SQL TestingData\Package /sourceserver SERVERNAME\INSTANCENAME /Copy File;"c:\Package.dtsx"'
在上面的命令中,您必须对要连接的 SQL 实例进行 windows 身份验证,因此如果您没有此类身份验证,尝试使用 SQL 身份验证:
EXEC xp_cmdshell 'dtutil /SQL TestingData\Package /SourceServer SERVERNAME\INSTANCENAME /SourceUser Monkey_User /SourcePassword P@$$word /Copy file;"c:\Package.dtsx"'