我的项目中运行的SQL Server代理作业很少。这些工作按计划完美运行,没有问题。
但现在我需要能够从前端开始这些工作(就像点击按钮一样)。
我该怎么办?
这些工作是否像功能一样?
答案 0 :(得分:3)
您可以使用我尝试的任何数据库连接器执行此操作 - 这里有几个示例...
使用CallableStatement:
Connection rConn = //however you get your connection...
CallableStatement cs = rConn.prepareCall("EXEC dbo.sp_start_job N'your job name'");
boolean checkvar = cs.execute();
或者,如果您使用jdbc模板:
jdbcTemp = //however you get your template...
jdbcTemp.update("EXEC msdb.dbo.sp_start_job N'" + procName + "'");
此外,您可能需要调整msdb的权限才能使其正常工作。您的帐户需要是sysadmin或具有SQLAgentOperatorRole角色。要在SQL Server Management中进行设置,请转到数据库引擎下的安全性,展开登录,右键单击要使用的帐户,然后选择属性。在服务器角色下,您可以授予sysadmin,或在User Mapping check msdb下,然后从下面的列表中选择TargetServersRole和SQLAgentOperatorRole。
HTH
答案 1 :(得分:1)