我有 2-3 台服务器,每台服务器有 20-25 个 SQL 代理作业。
因此,我不想手动运行这些作业。我只想传递服务器名称和作业名称,以便它将运行作业。
在做了一些研究之后,我能够自动化作业运行:
首先,您必须创建一个 Java 项目并将 sqljdbc4.jar 文件包含在项目的库中。
您可以从此链接下载 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);
}
}
谢谢:)