如何从java代码启动sql server代理作业

时间:2010-10-25 18:51:00

标签: java sql-server-2005 sql-server-agent

我的项目中运行的SQL Server代理作业很少。这些工作按计划完美运行,没有问题。

但现在我需要能够从前端开始这些工作(就像点击按钮一样)。

我该怎么办?

这些工作是否像功能一样?

2 个答案:

答案 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)

您可以使用sp_startjob proc

来调用它

例如

EXEC msdb.dbo.sp_start_job N'MyJobName';