2013-01-24 1 views

Répondre

1

Vous devriez regarder dans SMO. Cette classe donne un accès programmatique à plusieurs des choses que vous pouvez faire dans SQL Management Studio. Voici un lien sur la façon de démarrer un travail en utilisant SMO.

http://msdn.microsoft.com/en-us/library/ms202348.aspx

+0

Appuyé. Si vous cherchez à modifier la planification des tâches elle-même, voici ce qui suit: http://msdn.microsoft.com/fr-fr/library/microsoft.sqlserver.management.smo.agent.jobschedule.aspx –

1

Vous pouvez modifier l'heure de début à l'aide T-SQL dans la table msdb..sysschedules. Peut-être pourriez-vous créer une procédure stockée et l'appeler à partir de votre code C#.

L'extrait ci-dessous définira tous les travaux à 6h3045h45.

-- times are stored as integers, eg. 63045 = 06:30:45 
update s set 
    s.active_start_time = 63045 
from msdb..sysjobs j 
    left join msdb..sysjobschedules js on j.job_id = js.job_id 
    left join msdb..sysschedules s on js.schedule_id = s.schedule_id 

Voir dbo.sysschedules (Transact-SQL) pour plus d'informations.

0

de script PowerShell complet à changer tous les travaux à exécuter à 02h30:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo"); 
$svr = "." 
$sql = new-object ` 
    Microsoft.SqlServer.Management.Smo.Server ` 
    $svr;; 

$time = new-object -type "system.timespan" -argumentlist @(2,30,0) 

$sql.jobserver.jobs | foreach-object { 
    $_.jobschedules[0].activestarttimeofday = $time 
    $_.jobschedules[0].alter() 
} 

$ temps peut être modifié si nécessaire, une instruction IF peut être ajouté dans la boucle pour ne modifier que certains emplois, si le Le travail a plus d'un emploi du temps, il devra être modifié car ce qui précède ne regarde que le premier horaire.

Questions connexes