Partage via


sp_purge_jobhistory (Transact-SQL)

S’applique à : SQL Server Azure SQL Managed Instance

Supprime les enregistrements d’historique d’un travail dans le service SQL Server Agent.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_purge_jobhistory
    [ [ @job_name = ] N'job_name' ]
    [ , [ @job_id = ] 'job_id' ]
    [ , [ @oldest_date = ] oldest_date ]
[ ; ]

Arguments

[ @job_name = ] N’job_name'

Nom du travail dont il faut supprimer les enregistrements d'historique. @job_name est sysname, avec la valeur par défaut NULL. Vous devez spécifier @job_id ou @job_name , mais les deux ne peuvent pas être spécifiées.

Les membres du rôle serveur fixe sysadmin ou des membres du rôle de base de données fixe SQLAgentOperatorRole peuvent s’exécuter sp_purge_jobhistory sans spécifier de @job_name ou de @job_id. Lorsque les utilisateurs sysadmin ne spécifient pas ces arguments, l’historique des travaux locaux et multiserveurs est supprimé dans le délai spécifié par @oldest_date. Lorsque les utilisateurs DE SQLAgentOperatorRole ne spécifient pas ces arguments, l’historique des travaux locaux est supprimé dans le délai spécifié par @oldest_date.

[ @job_id = ] 'job_id'

Numéro d'identification du travail dont les enregistrements doivent être supprimés. @job_id est uniqueidentifier, avec la valeur par défaut NULL. Vous devez spécifier @job_id ou @job_name , mais les deux ne peuvent pas être spécifiées.

Consultez la note dans la description de @job_name pour plus d’informations sur la façon dont les utilisateurs sysadmin ou SQLAgentOperatorRole peuvent utiliser cet argument.

[ @oldest_date = ] oldest_date

Enregistrement le plus ancien à conserver dans l'historique. @oldest_date est datetime, avec la valeur par défaut NULL. Lorsque oldest_date est spécifié, sp_purge_jobhistory supprime uniquement les enregistrements antérieurs à la valeur spécifiée.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Jeu de résultats

Aucune.

Notes

Une fois sp_purge_jobhistory terminé, un message est retourné.

Cette procédure stockée partage le nom d’un sp_purge_jobhistory objet similaire pour le service Travaux élastiques Azure pour Azure SQL Database. Pour plus d’informations sur la version des travaux élastiques, consultez jobs.sp_purge_jobhistory (Travaux élastiques Azure).

autorisations

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

D’autres utilisateurs, y compris les membres de SQLAgentUserRole et des membres de SQLAgentReaderRole, doivent recevoir explicitement 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 se trouvent dans la msdb base de données. Pour plus d’informations sur leurs autorisations, consultez rôles de base de données fixes sql Server Agent.

Exemples

R. 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

Seuls les membres du rôle 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 des travaux locaux et multiserveurs est vidé. Lorsque les utilisateurs DE SQLAgentOperatorRole exécutent cette procédure stockée sans paramètres, seul l’historique des travaux locaux est vidé.

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