Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从java代码启动sql server代理作业_Java_Sql Server 2005_Sql Server Agent - Fatal编程技术网

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

如何从java代码启动sql server代理作业,java,sql-server-2005,sql-server-agent,Java,Sql Server 2005,Sql Server Agent,我的项目中运行的SQL Server代理作业很少。作业按计划完美运行,没有问题 但是现在我需要能够从前端开始这些工作(比如点击按钮) 我怎么做 这些作业的行为是否像函数一样?您可以使用proc调用它 范例 EXEC msdb.dbo.sp_start_job N'MyJobName'; 您可以使用我尝试过的任何db连接器执行此操作--这里有几个示例 使用CallableStatement: Connection rConn = //however you get your connection

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

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

我怎么做


这些作业的行为是否像函数一样?

您可以使用proc调用它

范例

EXEC msdb.dbo.sp_start_job N'MyJobName';

您可以使用我尝试过的任何db连接器执行此操作--这里有几个示例

使用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管理中进行设置,请转到数据库引擎下的“安全性”,展开“登录”,右键单击要使用的帐户并选择“属性”。在“服务器角色”下,您可以授予sysadmin权限,或在“用户映射”下选中msdb,然后从下面的列表中选择TargetServersRole和SQLAgentOperatorRole


hth

我应该使用callable语句吗?我正在使用JavaSpringHibernate。感谢一个示例代码。有趣的故事——昨晚我们的DBA对我上面提到的设置了权限的数据库进行了处理,导致我们的应用程序开始失败。我记不起所需的权限,但我记得在StackOverflow上发布了相关信息。在这里发帖节省了我重新查找正确权限的几个小时!