您的位置:首页 > 数据库

How to run an existing SQL Server Agent Job from C#

2011-07-24 17:29 726 查看
If you want to execute an existing Microsoft SQL Server Agent Job in C# you an use the following function:
The function uses SQL authentication to connect to the Microsoft SQL Server instance.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Smo.Agent;
using Microsoft.SqlServer.Management.Common;
using System.Data;

public override void Execute()
{
Server server = new Server(@"MyServer\MyInstanceName");
try
{
server.ConnectionContext.LoginSecure = false;
server.ConnectionContext.Login = "MyName";
server.ConnectionContext.Password = "MyPassword";
server.ConnectionContext.Connect();
Job job = server.JobServer.Jobs[Name];
job.Start();
}
finally
{
if (server.ConnectionContext.IsOpen)
{
server.ConnectionContext.Disconnect();
}
}
}

Add this after the above method to have the Job wait until it’s done
Thread.Sleep(5000);
job.Refresh();
while(job.CurrentRunStatus != JobExecutionStatus.Idle)
{
Thread.Sleep(5000);
job.Refresh();
}

Reference: http://www.roelvanlisdonk.nl/?p=1736
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: