我可以从命令行运行my.exe。我可以从.bat运行它。但是,当我尝试在SQL Server中运行它们时,.exe似乎永远不会运行。
exec master..xp_cmdshell '\\fs01\filefolder\runpgm.bat'
这会运行.bat但它运行的.exe永远不会运行。
echo %date% %TIME% >> \\fs01\filefolder\test.txt
\\fs01\filefolder\CallClickSoftWS.exe >> \\fs01\filefolder\test.txt
echo %date% %TIME% >> \\fs01\filefolder\test.txt
echo "Done" >> \\fs01\filefolder\test.txt
exit
如果我运行' \ fs01 \ filefolder \ runpgm.bat'从命令行然后它工作正常。
答案 0 :(得分:0)
我只是将其作为代码格式的答案添加,但是尝试将exec
包装在try catch中,看看问题是什么......
BEGIN TRY
exec master..xp_cmdshell '\\fs01\filefolder\runpgm.bat'
END TRY
BEGIN CATCH
SELECT @ERROR_MESSAGE()
END CATCH
答案 1 :(得分:0)
根本原因:SQL Server服务器上未安装.Net版本。
长说明:
SQL Server不显示错误。 Power Shell也不是。要使用master..xp_cmdshell在SQL Server静默失败时进行调试,则需要退出SQL Server并使用[DOS] Command shell进行调试。 Command shell确实会弹出一个对话框,通知用户未安装.Net版本。或者,您需要远程进入SQL Server计算机才能尝试这一点。 : - )