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

标签 sql sql-server

我们如何仅删除 1 天的 SQL 代理作业历史记录(对于作业)?

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

最佳答案

sp_purge_jobhistory 是 Microsoft 提供的清除作业历史记录的工具,它以日期作为参数之一。

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

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

The oldest record to retain in the history. oldest_date is datetime, with a default of NULL. When oldest_date is specified, sp_purge_jobhistory only removes records that are older than the value specified.

根据上面的文档,你不能删除一天..

但是查看源代码,我看到它所做的只是检查权限并在行下运行

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

所以你可以通过,run_date =date你需要删除

关于SQL Server 代理作业历史记录 - 仅删除一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39416163/

相关文章:

sql - 过滤 SQL 列中仅包含数字数据的行

c# - Entity Framework -使用存储过程急于加载对象图

sql-server - 使用 2 个日期字段按月汇总数据的 T-SQL 查询

来自连接字符串的 SQL where 子句

php - 试图删除数据库中的条目,收到 sql 错误但无法解决

sql - 在 IBM netezza aginity workbench 中更改表名时出错

sql - INT 数据库字段如何与 VARCHAR 类型进行比较

c# - 生成一组(相对)短的 "invitation codes"的好方法是什么

mysql - MS Access Access SQL Server?

mysql - 如何在 MySQL 查询中转换 MySQL 日期?