我意识到我可能缺少一些简单的东西,但我无法弄清楚。
如果我在目标服务器上的批处理文件中使用以下“复制”命令,则它可以正常工作。但是,如果在执行备份的SQL Server代理作业的某个步骤中添加了它,则会收到语法错误。那么,我在做什么错呢?似乎它可能卡在了“ / y”参数的“ /”上,但是我确实希望它覆盖现有文件。
copy /y "\\DBServer\c$\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\db_daily.bak" "\\DESTINATION\\db\db_daily.bak"
错误是:
Incorrect syntax near '/'. [SQLSTATE 42000] (Error 102). The step failed.
我完全删除了/ y并尝试了所有我能想到的。任何帮助将不胜感激。
答案 0 :(得分:2)
确保将您的步骤创建为“操作系统(Cmd Exec)类型,而不是事务sql。”
或使用XP xp_cmdshell
exec xp_cmdshell 'copy /y "\\DBServer\c$\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\db_daily.bak" "\\DESTINATION\\db\db_daily.bak"'
请注意,您可能需要启用xp_cmdshell。