sp_purge_jobhistory (Transact-SQL)

Supprime les enregistrements d'historique d'un travail.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_purge_jobhistory 
   {   [ @job_name = ] 'job_name' | 
     | [ @job_id = ] job_id }
   [ , [ @oldest_date = ] oldest_date ]

Arguments

  • [ **@job\_name=** ] 'job_name'
    Nom du travail dont il faut supprimer les enregistrements d'historique. job_nameest de type sysname, avec la valeur par défaut NULL. Vous devez définir la valeur de job_id ou de job_name, mais pas les deux valeurs à la fois.

    [!REMARQUE]

    Les membres du rôle de serveur fixe sysadmin ou du rôle de base de données fixe SQLAgentOperatorRole peuvent exécuter sp_purge_jobhistory sans spécifier job_name ni job_id. Lorsque les utilisateurs sysadmin ne précisent pas ces arguments, l'historique du travail pour tous les travaux locaux et multiserveurs est supprimé au moment défini par oldest_date. Lorsque les utilisateurs SQLAgentOperatorRole ne précisent pas ces arguments, l'historique du travail pour tous les travaux locaux est supprimé au moment défini par oldest_date.

  • [ **@job\_id=** ] job_id
    Numéro d'identification du travail dont les enregistrements doivent être supprimés. job_idest de type uniqueidentifier, avec la valeur par défaut NULL. Vous devez définir la valeur de job_id ou de job_name, mais pas les deux valeurs à la fois. Consultez la remarque rattachée à la description de **@job\_name** pour savoir comment les utilisateurs sysadmin ou SQLAgentOperatorRole peuvent exploiter cet argument.

  • [ **@oldest\_date** = ] oldest_date
    Enregistrement le plus ancien à conserver dans l'historique. oldest_date est de type datetime, avec la valeur par défaut NULL. Lorsque oldest_date est spécifié, sp_purge_jobhistory ne supprime que les enregistrements antérieurs à la valeur spécifiée.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Ensembles de résultats

Aucun

Notes

Lorsque sp_purge_jobhistory s'exécute sans problème, un message est retourné.

Autorisations

Par défaut, seuls les membres du rôle de serveur fixe sysadmin ou du rôle de base de données fixe SQLAgentOperatorRole peuvent exécuter cette procédure stockée. Les membres de sysadmin peuvent purger l'historique pour tous les travaux locaux et multiserveurs tandis que les membres de SQLAgentOperatorRole purgent uniquement l'historique pour les travaux locaux.

Les autres utilisateurs, notamment les membres de SQLAgentUserRole et de SQLAgentReaderRole, doivent disposer explicitement de l'autorisation EXECUTE sur sp_purge_jobhistory. Une fois l'autorisation accordée sur cette procédure stockée, ces utilisateurs peuvent uniquement supprimer l'historique des travaux dont ils sont propriétaires.

Les rôles de base de données fixes SQLAgentUserRole, SQLAgentReaderRole et SQLAgentOperatorRole sont contenus dans la base de données msdb. Pour en savoir plus sur les autorisations qui leur sont propres, consultez Rôles de base de données fixes de l'Agent SQL Server.

Exemples

A. Suppression de l'historique d'un travail spécifique

L'exemple suivant supprime l'historique du travail NightlyBackups.

USE msdb ;
GO

EXEC dbo.sp_purge_jobhistory
    @job_name = N'NightlyBackups' ;
GO

B. Suppression de l'historique de tous les travaux

[!REMARQUE]

Seuls les membres du rôle de serveur fixe sysadmin et les membres de SQLAgentOperatorRole peuvent supprimer l'historique de tous les travaux. Lorsque les utilisateurs sysadmin exécutent cette procédure stockée sans paramètres, l'historique de tous les travaux locaux et multiserveurs est systématiquement purgé. Lorsque les utilisateurs SQLAgentOperatorRole exécutent cette procédure stockée sans paramètres, seule l'historique du travail pour tous les travaux locaux est systématiquement purgé.

Dans cet exemple, la procédure est exécutée sans paramètres pour supprimer tous les enregistrements d'historique.

USE msdb ;
GO

EXEC dbo.sp_purge_jobhistory ;
GO