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