Démarrer un travail
s’applique à :SQL Server
Azure SQL Managed Instance
Important
Sur Azure SQL Managed Instance, la plupart, mais pas toutes les fonctionnalités de SQL Server Agent sont actuellement prises en charge. Pour plus d’informations, consultez différences T-SQL d’Azure SQL Managed Instance par rapport à SQL Server.
Cet article explique comment démarrer l’exécution d’un travail Microsoft SQL Server Agent dans SQL Server à l’aide de SQL Server Management Studio, Transact-SQL ou SQL Server Management Objects.
Un travail est une série spécifiée d’actions effectuées par SQL Server Agent. Les travaux de SQL Server Agent peuvent s’exécuter sur un serveur local ou sur plusieurs serveurs distants.
Avant de commencer
Sécurité
Pour plus d’informations, consultez Sécurité de SQL Server Agent : Implémentation.
Utiliser SQL Server Management Studio
Dans Explorateur d’objets, connectez-vous à une instance du moteur de base de données SQL Server, puis développez cette instance.
Développez SQL Server Agent, et développez les tâches. Selon la façon dont vous souhaitez démarrer le travail, effectuez l’une des opérations suivantes :
Si vous travaillez sur un serveur unique ou si vous travaillez sur un serveur cible ou que vous exécutez un travail de serveur local sur un serveur maître, cliquez avec le bouton droit sur le travail que vous souhaitez démarrer, puis sélectionnez Démarrer le travail.
Si vous souhaitez démarrer plusieurs travaux, cliquez avec le bouton droit sur Moniteur d’activité de travail, puis sélectionnez Afficher l’activité de travail. Dans le Moniteur d’activité du travail, vous pouvez sélectionner plusieurs travaux, cliquer avec le bouton droit sur votre sélection, puis sélectionner Démarrer les travaux.
Si vous travaillez sur un serveur maître et souhaitez que tous les serveurs ciblés exécutent le travail simultanément, cliquez avec le bouton droit sur le travail que vous souhaitez démarrer, sélectionnez Démarrer le travail, puis sélectionnez Démarrer sur tous les serveurs ciblés.
Si vous travaillez sur un serveur maître et souhaitez spécifier des serveurs cibles pour le travail, cliquez avec le bouton droit sur le travail que vous souhaitez démarrer, sélectionnez Démarrer le travail, puis sélectionnez Démarrer sur des serveurs cibles spécifiques. Dans la boîte de dialogue Instructions de post-téléchargement, cochez la case Ces serveurs cibles, puis sélectionnez chaque serveur cible sur lequel ce travail doit s’exécuter.
Utiliser Transact-SQL
Dans Explorateur d’objets, connectez-vous à une instance du moteur de base de données.
Dans la barre d'outils Standard, sélectionnez Nouvelle requête.
Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter.
-- starts a job named Weekly Sales Data Backup. USE msdb ; GO EXEC dbo.sp_start_job N'Weekly Sales Data Backup' ; GO
Pour plus d’informations, consultez sp_start_job (Transact-SQL).
Utiliser des langages de programmation
Appelez la méthode Start de la classe Job à l’aide d’un langage de programmation que vous choisissez, tel que Visual Basic, Visual C# ou SQL PowerShell.
SQL PowerShell
Voici un script PowerShell qui peut être utilisé dans SQL Server Agent avec des paramètres. Ce script montre comment démarrer un travail SQL Server Agent à l’aide de paramètres passés dans le script.
# Parameters
param(
[string]$ServerInstance,
[string]$JobName
)
# Load the SMO assembly
Add-Type -AssemblyName "Microsoft.SqlServer.SMO"
# Create a server object
$server = New-Object Microsoft.SqlServer.Management.Smo.Server $ServerInstance
# Get the job you want to start
$job = $server.JobServer.Jobs[$JobName]
# Start the job
if ($job) {
$job.Start()
Write-Output "The job '$JobName' on server '$ServerInstance' has been started successfully."
} else {
Write-Output "The job '$JobName' was not found on server '$ServerInstance'."
}
Comment utiliser le script dans SQL Server Agent.
Ouvrez SQL Server Management Studio (SSMS).
Connectez-vous à l’instance SQL Server appropriée.
Développez le nœud SQL Server Agent.
Cliquez avec le bouton droit sur Travaux et sélectionnez Nouveau travail.
Dans la boîte de dialogue Nouveau travail, entrez le nom du travail et d’autres détails requis.
Accédez à la page Étapes et sélectionnez Nouveau pour créer une étape de travail.
Dans la boîte de dialogue Nouvelle étape du travail :
Définissez le type sur PowerShell.
Dans le champ Commande, entrez le script PowerShell avec les paramètres, par exemple :
.\YourScript.ps1 -ServerInstance "YourServerInstance" -JobName "YourJobName"
Définissez toutes les autres propriétés de travail en fonction des besoins (planifications, alertes, notifications, etc.).
Sélectionnez OK pour enregistrer la tâche.
Explication du script
- Paramètres : le script accepte deux paramètres, $ServerInstance et $JobName, qui sont respectivement l’instance SQL Server et le nom du travail.
- Charger SMO : l’applet de commande Add-Type est utilisée pour charger l’assembly SMO (SQL Server Management Objects).
- Objet serveur : un nouvel objet serveur est créé à l’aide du paramètre $ServerInstance.
- Obtenir le travail : le script récupère le travail spécifié à l’aide du paramètre $JobName.
- Démarrer le travail : si le travail est trouvé, il est démarré à l’aide de la méthode Start. Le script génère un message de réussite. Si le travail est introuvable, un message d’erreur s’affiche.
Pour plus d’informations, consultez SQL Server Management Objects (SMO).