jobs.sp_purge_jobhistory (Azure 弹性作业) (Transact-SQL)

适用于:Azure SQL 数据库

删除 Azure 弹性作业服务中Azure SQL 数据库作业的历史记录。

此存储过程与 SQL Server 中用于SQL Server 代理服务的类似对象共享名称sp_purge_jobhistory。 有关SQL Server 代理版本的信息,请参阅sp_purge_jobhistory(Transact-SQL)。

Transact-SQL 语法约定

语法

[jobs].sp_purge_jobhistory [ @job_name = ] 'job_name'
      [ , [ @job_id = ] job_id ]
      [ , [ @oldest_date = ] oldest_date []

参数

@job_name

要删除其历史记录的作业的名称。 job_name为 nvarchar(128),默认值为 NULL. 必须指定job_idjob_name,但不能同时指定两者。

@job_id

要删除其记录的作业的标识号。 job_id 是 uniqueidentifier,默认值为 NULL. 必须指定job_idjob_name,但不能同时指定两者。

@oldest_date

历史记录中保留的最早记录。 oldest_date为DATETIME2,默认值为 NULL. 指定oldest_datesp_purge_jobhistory仅删除早于指定值的记录。

弹性作业中的所有时间均处于 UTC 时区。

返回代码值

0(成功)或 1(失败)

注解

如果超过 45 天,则会自动删除弹性作业历史记录。

权限

默认情况下,只有 sysadmin 固定服务器角色的成员才可以执行此存储过程。 仅 sysadmin 的成员可以使用此存储过程来编辑其他用户拥有的作业的属性。

示例

删除旧的作业历史记录

以下示例演示如何删除特定日期之前的作业历史记录。

连接到 job_database,然后运行以下命令:

--Connect to the job database specified when creating the job agent

-- Delete history of a specific job's executions older than the specified date
EXEC jobs.sp_purge_jobhistory 
@job_name='ResultPoolsJob'
, @oldest_date='2016-07-01 00:00:00';
GO

删除作业及其所有历史记录

以下示例演示如何使用 jobs.sp_delete_job 和所有相关作业历史记录删除作业。

连接到 job_database,然后运行以下命令:

--Connect to the job database specified when creating the job agent

--Delete a job and all its history
EXEC jobs.sp_delete_job @job_name='ResultsPoolsJob';