SQL Server代理作业历史记录 - 仅删除一天

时间:2016-09-09 16:39:50

标签: sql sql-server

我们如何在一天内删除SQL代理作业历史记录(作业)?

例如,我只想删除9月1日

1 个答案:

答案 0 :(得分:1)

sp_purge_jobhistory由Microsoft提供,用于清除作业历史记录,并将日期作为参数之一。

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

现在查看日期文档,请在下面说明

  

历史上最古老的记录。 oldest_date是datetime,默认值为NULL。指定oldest_date时,sp_purge_jobhistory仅删除早于指定值的记录。

根据以上文档,您无法删除一天..

但是看一下源代码,我发现它只是检查权限并在行下面运行

DELETE FROM msdb.dbo.sysjobhistory
 WHERE ((run_date < @datepart) OR 
 (run_date <= @datepart AND run_time < @timepart))

所以你可以传递,run_date =date你需要删除