我有一个Python (3.7.2)
文件,它从第三方API
提取数据,将数据保存在CSV
上的本地Windows Server 2016
文件中,然后执行了{{1 }}放入bulk import
(13.0.4224.16)的实例中。
如果我从提升权限的命令提示符下手动运行脚本,这将没有问题。但是,我不想手动运行此脚本,因为我希望它每小时执行一次。我知道如何从服务器操作系统上的SQL Server 2016
进行计划,但是我想使用Task Scheduler
作为自动作业进行计划。这样,我可以使用SQL Server Agent
直接管理/跟踪作业,而不必登录服务器本身来检查计划的任务。
我目前有一个配置为SSMS
类型的1步且Operating system (CmdExec)
设置为Command:
的作业:
我对上述内容的看法是,将打开"C:\Windows\System32\cmd.exe" "python C:\PythonScripts\myPython.py"
并使用我提供的python路径调用cmd.exe
程序。
但是,当我运行作业时,它只是挂在python.exe
的状态而从未完成。手动运行时,脚本会在9秒内成功完成:
这里有什么想法吗?
答案 0 :(得分:0)
您尝试使用sp_execute_external_script吗?
execute sp_execute_external_script
@language = N'Python',
@script = N'
a = 1
b = 2
c = a/b
d = a*b
print(c, d)
'
例如,可以将此代码调度到SqlAgent中。
答案 1 :(得分:0)
我可以通过以下方式解决问题:添加凭据/代理帐户,将其分配给Run as
,然后将Command
更改为以下样子:>
C:\Windows\System32\cmd.exe /C python "C:\PythonScripts\myPython.py"