Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment exécuter un travail de l'Agent SQL Server à l'aide de T-SQL

Lorsque vous créez une tâche de l'Agent SQL Server pour la première fois, vous souhaiterez peut-être effectuer un test rapide pour voir si elle va réellement s'exécuter sans aucun problème.

C'est assez simple lorsque vous utilisez l'interface graphique SSMS, mais comment le faites-vous dans T-SQL ?

Réponse :Le sp_start_job procédure stockée.

Exemple

Voici un exemple pour illustrer :

USE msdb;  
GO  
  
EXEC sp_start_job N'BackupKrankyKranesDB';
GO

Dans ce cas, j'ai exécuté un travail appelé BackupKrankyKranesDB .

La procédure ne renvoie aucun jeu de résultats. Cependant, si vous l'exécutez dans SSMS, vous verrez peut-être un message comme celui-ci :

Job 'BackupKrankyKranesDB' started successfully.
 Completion time: 2020-12-13T19:54:18.3503521-08:00

Paramètres

Vous pouvez également fournir les noms des paramètres. Dans ce cas, j'aurais pu faire ceci :

USE msdb;  
GO  
  
EXEC sp_start_job @job_name = N'BackupKrankyKranesDB';
GO

Vous pouvez fournir le nom du travail ou l'ID du travail (mais pas les deux). L'ID de la tâche est un identifiant unique avec une valeur par défaut de NULL .

Par conséquent, nous aurions pu faire ceci :

USE msdb;  
GO  
  
EXEC sp_start_job @job_id = '4FAE7031-36E8-4934-81E6-0D561F375627';
GO

Il s'agit de l'ID de travail du travail ci-dessus. Évidemment, vous devrez utiliser l'ID du travail que vous devez exécuter. Vous pouvez utiliser le sp_help_job procédure stockée pour obtenir l'ID du travail.

La syntaxe

La syntaxe réelle ressemble à ceci :

sp_start_job   
     {   [@job_name =] 'job_name'  
       | [@job_id =] job_id }  
     [ , [@error_flag =] error_flag]  
     [ , [@server_name =] 'server_name']  
     [ , [@step_name =] 'step_name']  
     [ , [@output_flag =] output_flag]

Voir sp_start_job sur le site Web de Microsoft pour une explication de chaque argument.

Afficher l'historique des tâches

Maintenant que nous avons exécuté le travail, nous pouvons maintenant utiliser sp_help_jobhistory pour vérifier qu'il a été ajouté à l'historique des travaux :

EXEC sp_help_jobhistory 
	@job_name = 'BackupKrankyKranesDB',
	@mode = 'FULL';

Utilisation de @mode = 'FULL' garantit que nous obtenons des informations plus détaillées.

Voici ce que j'ai obtenu après avoir exécuté la tâche :

Voir sp_help_jobhistory sur le site Web de Microsoft pour plus d'informations sur cette procédure stockée.

Voir également 4 façons d'obtenir l'historique des tâches SQL Server pour plus d'options pour renvoyer l'historique des tâches.