我的项目中运行的 SQL Server 代理作业很少。作业按计划完美运行,没有问题。
但是现在我需要能够从前端开始这些工作(比如单击按钮左右)。
我该怎么做 ?
这些工作的行为就像函数一样吗?
我的项目中运行的 SQL Server 代理作业很少。作业按计划完美运行,没有问题。
但是现在我需要能够从前端开始这些工作(比如单击按钮左右)。
我该怎么做 ?
这些工作的行为就像函数一样吗?
您可以使用我尝试过的任何数据库连接器来做到这一点——这里有几个例子......
使用 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