2

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

但是现在我需要能够从前端开始这些工作(比如单击按钮左右)。

我该怎么做 ?

这些工作的行为就像函数一样吗?

4

2 回答 2

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 的权限才能使其正常工作。您的帐户需要是系统管理员或具有 SQLAgentOperatorRole 角色。要在 SQL Server 管理中进行设置,请转到数据库引擎下的安全性,展开登录,右键单击您将使用的帐户并选择属性。在 Server Roles 下,您可以授予 sysadmin,或者在 User Mapping 下检查 msdb,然后从下面的列表中选择 TargetServersRole 和 SQLAgentOperatorRole。

hth

于 2013-01-24T16:22:45.717 回答
1

您可以使用 sp_startjob proc调用它

例子

EXEC msdb.dbo.sp_start_job N'MyJobName';
于 2010-10-25T18:54:40.173 回答