我正在将一些代码部署到生产中,这是将系统从 SQL 2000 升级到 SQL 2008。
我的一个存储过程中有一个神秘的问题,它从数据库中获取一些数据,然后通过 bcp(成功)创建一些文件,然后它尝试执行几个移动命令,即使文件夹它们都失败了肯定存在并且服务以系统管理员身份运行。
这是它试图执行的代码:
set @cmd_string = 'move '+ @OutPath_AllCards + '*.* '+ @ArchivePath_AllCards
delete from @tbl_xp_cmdshell_output
Insert @tbl_xp_cmdshell_output exec @error_temp = master.dbo.xp_cmdshell @cmd_string
这是我回来的错误信息
xp_cmdshell Error Executing "move H:\Transfer\CHAD\Outbound\AllCards\*.* H:\Transfer\CHAD\Outbound\AllCards\Archive\"
返回的命令行错误是
"The filename, directory name, or volume label syntax is incorrect."
这在相同设置的 UAT 版本的数据库中工作正常
有什么建议么?
更新:
如果源目录中没有文件,我可以重现该错误。我认为源目录中可能应该有文件,但我想知道在 bcp 创建它们之前是否存在延迟,并且当它执行移动时它们还不存在?有任何想法吗?