2012-03-05 20 views

Respuesta

18

Llamar al sp_start_job.

exec msdb.dbo.sp_start_job @job_name = 'YourJobName' 

MSDN Reference on sp_start_job

SqlConnection DbConn = new SqlConnection(YourConnectionString); 
SqlCommand ExecJob = new SqlCommand(); 
ExecJob.CommandType = CommandType.StoredProcedure; 
ExecJob.CommandText = "msdb.dbo.sp_start_job"; 
ExecJob.Parameters.AddWithValue("@job_name", "YourJobName") 
ExecJob.Connection = DbConn; //assign the connection to the command. 

using (DbConn) 
{ 
    DbConn.Open(); 
    using (ExecJob) 
    { 
     ExecJob.ExecuteNonQuery(); 
    } 
} 
0

Los trabajos de los agentes generalmente son solo scripts que ejecutan consultas de todos modos. ¿Hay alguna razón por la que no pueda ejecutar la consulta de que el trabajo del agente se está ejecutando de todos modos?

Agent solo se encarga de las notificaciones de programación y falla, etc. Esto es un poco simplificado, pero el agente es principalmente un programador con alertas que ejecuta consultas. Intente crear un script para su trabajo de agente y vea si es algo que puede pasar a un procedimiento almacenado que ejecuta tanto el agente como su aplicación.

+0

En mi caso, conozco la identificación del trabajo ... quiero que ese trabajo se modifique con la ayuda de la aplicación de Windows. – user824910

+0

MSDB tiene la mayoría de los agentes de datos. Eche un vistazo por allí y, aunque no lo he hecho yo mismo, estoy seguro de que puede cambiarlo actualizándolo directamente. Sin embargo, esto puede ser un poco peligroso, y me parece que un servicio de Windows sería una mejor solución para lo que estás tratando de hacer. Su OP dijo que quería invocarlo, pero ahora está diciendo que quiere cambiarlo ... ¿es así? – Gats

1

El documentation describe todas las opciones. Puede utilizar SMO Job class desde C# u otro idioma .NET si prefiere no utilizar TSQL.

+0

Gracias. ¿Sabes si esto utiliza WMI en segundo plano? –

+0

@TomRedfern SMO [wrap WMI] (http://msdn.microsoft.com/en-us/library/ms162557.aspx) para algunas operaciones (como trabajar con los servicios de SQL Server), pero para muchos solo genera TSQL y lo envía al servidor. – Pondlife

Cuestiones relacionadas