我有2-3台服务器,每台服务器有20-25个SQL代理作业。
所以,我不想手动运行这些作业。我只想传递服务器名和作业名,这样它就可以运行作业。
发布于 2017-11-22 14:03:08
在做了一些研究之后,我能够自动运行作业:
首先,您必须创建一个java项目,并将sqljdbc4.jar文件包含到项目的库中。
您可以从此link下载jar文件。
public class SQLMethod {
static void runJob(String serverName, String jobName) throws SQLException, ClassNotFoundException {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String sqlSerDriver = "jdbc:sqlserver://%s;integratedSecurity=true;";
String Url = String.format(sqlSerDriver, serverName);
Connection conn = DriverManager.getConnection(Url);
String jobExString = "EXEC msdb.dbo.sp_start_job N'%s'";
String jobExcute = String.format(jobExString, jobName);
CallableStatement cs = conn.prepareCall(jobExcute);
cs.execute();
System.out.println("Job started..");
}
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String serverName = " "; /*pass your server name here*/
String jobName = " "; /*pass your job name here*/
runJob(serverName, jobName);
}
}谢谢:)
https://stackoverflow.com/questions/47387267
复制相似问题