如何从SQL Server代理运行作业?

时间:2013-12-05 07:13:51

标签: c# asp.net sql-server-2008

可以通过点击按钮按钮触发 ASP.Net 页面中的 SQL Server代理执行作业强>

3 个答案:

答案 0 :(得分:3)

您可以使用sp_start_job (Transact-SQL)

  

指示SQL Server代理立即执行作业。


  

[@ job_name =]'job_name'

     

要开始的工作的名称。 job_id或job_name必须是   指定,但两者都无法指定。 job_name是sysname,带有   默认为NULL。

您可以将其用作存储过程,而不是在代码中运行它。

如果您的作业运行dts包,则可以使用Package.Execute method

  

返回包含有关信息的DTSExecResult枚举   包执行的成功或失败。

来自 MSDN 页面的示例;

    static void Main(string[] args)
    {
        Package p = new Package();
        p.InteractiveMode = true;
        p.OfflineMode = true;

        // Add a Script Task to the package.
        TaskHost taskH = (TaskHost)p.Executables.Add(typeof(Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask).AssemblyQualifiedName);
        // Run the package.
        p.Execute();
        // Review the results of the run.
        if (taskH.ExecutionResult == DTSExecResult.Failure || taskH.ExecutionStatus == DTSExecStatus.Abend)
            Console.WriteLine("Task failed or abended");
        else
            Console.WriteLine("Task ran successfully");
    }

答案 1 :(得分:1)

使用sp_start_job存储过程。

EXEC dbo.sp_start_job N'YourJobName';

答案 2 :(得分:0)

是的,有可能。您也可以使用

Server server = new Server("<replace_with_your_server>");
server.JobServer.Jobs["<replace_with_your_job_name>"]?.Start();

更多详情,请访问Start, Stop, Manage MS SQL Server Agent Job using C#