Partager via


sp_delete_jobsteplog (Transact-SQL)

Supprime tous les journaux d'étapes de travail de l'Agent SQL Server qui sont spécifiés via les arguments. Utilisez cette procédure stockée pour gérer la table sysjobstepslogs dans la base de données msdb.

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

Syntaxe

sp_delete_jobsteplog { [ @job_id = ] 'job_id' | [ @job_name = ] 'job_name' }
       [ , [ @step_id = ] step_id| [ @step_name = ] 'step_name' ]
       [ , [ @older_than = ] 'date' ]
       [ , [ @larger_than = ] 'size_in_bytes' ]

Arguments

  • [ @job_id =] 'job_id'
    Numéro d'identification du travail qui contient le journal d'étapes de travail à supprimer. L'argument job_id est de type int, avec NULL comme valeur par défaut.

  • [ @job_name =] 'job_name'
    Nom du travail. L'argument job_name est de type sysname, avec NULL comme valeur par défaut.

    [!REMARQUE]

    Vous devez définir la valeur de job_id ou de job_name, mais pas les deux valeurs à la fois.

  • [ @step_id =] step_id
    Numéro d'identification de l'étape de travail pour laquelle le journal d'étapes doit être supprimé. S'il n'est pas mentionné, tous les journaux d'étapes de travail sont supprimés, à moins que la valeur de @older_than ou de @larger_than ait été définie. L'argument step_id est de type int, avec NULL comme valeur par défaut.

  • [ @step_name =] 'step_name'
    Nom de l'étape de travail pour laquelle le journal d'étapes doit être supprimé. L'argument step_name est de type sysname, avec NULL comme valeur par défaut.

    [!REMARQUE]

    Vous pouvez définir la valeur de step_id ou de step_name, mais pas les deux valeurs à la fois.

  • [ @older_than =] 'date'
    Date et heure du plus ancien journal d'étapes de travail à conserver. Tous les journaux d'étapes de travail antérieurs à cette date/heure sont supprimés. L'argument date est de type datetime, avec NULL comme valeur par défaut. Les valeurs de @older_than et de @larger_than peuvent être définies toutes les deux.

  • [ @larger_than =] 'size_in_bytes'
    Taille en octets du journal d'étapes de travail le plus volumineux à conserver. Tous les journaux d'étapes de travail dont la taille est supérieure à celle spécifiée sont supprimés. Les valeurs @larger_than et @older_than peuvent être définies toutes les deux.

Valeurs des codes de retour

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

Ensembles de résultats

Aucun

Notes

La procédure stockée sp_delete_jobsteplog se trouve dans la base de données msdb.

Si aucun argument n'est spécifié excepté @job_id ou @job_name, tous les journaux d'étapes du travail spécifié sont supprimés.

Autorisations

Seuls les membres du rôle de serveur fixe sysadmin peuvent exécuter cette procédure stockée. Les autres utilisateurs doivent disposer de l'un des rôles de base de données fixes SQL Server Agent suivants dans la base de données msdb.

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Pour en savoir plus sur les autorisations de ces rôles, consultez Rôles de base de données fixes de l'Agent SQL Server.

ils sont en outre les seuls à pouvoir supprimer un journal d'étapes de travail appartenant à un autre utilisateur.

Exemples

A. Suppression de tous les journaux d'étapes d'un travail particulier

L'exemple suivant montre la suppression de tous les journaux d'étapes du travail Weekly Sales Data Backup.

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup';
GO

B. Suppression du journal d'étapes de travail pour une étape particulière

L'exemple suivant montre la suppression du journal d'étapes de travail pour l'étape 2 du travail Weekly Sales Data Backup.

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 2;
GO

C. Suppression de tous les journaux d'étapes de travail en fonction de l'ancienneté et de la taille.

L'exemple suivant montre la suppression de tous les journaux d'étapes de travail créés avant le 25 octobre 2005 à midi et dont la taille est supérieure à 100 mégaoctets (Mo) pour le travail Weekly Sales Data Backup.

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup',
    @older_than = '10/25/2005 12:00:00',
    @larger_than = 104857600;
GO