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 语法约定

语法

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

参数

[ @job_name = ] N'job_name'

要删除其历史记录的作业的名称。 @job_namenvarchar(128),默认值为 NULL.

必须指定@job_id@job_name,但不能指定这两者。

[ @job_id = ] job_id

要删除其记录的作业的标识号。 @job_id是 uniqueidentifier,默认值为 NULL.

必须指定@job_id@job_name,但不能指定这两者。

[ @oldest_date = ] oldest_date

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

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

返回代码值

0(成功)或 1(失败)。

注解

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

权限

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

示例

A. 删除旧的作业历史记录

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

连接到 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

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

以下示例演示如何使用 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';