jobs.sp_purge_jobhistory (Azure エラスティック ジョブ) (Transact-SQL)

適用対象:Azure SQL Database

Azure SQL Database の Azure エラスティック ジョブ サービス内のジョブの 履歴レコードを削除します

このストアド プロシージャは、SQL Server エージェント サービスの sp_purge_jobhistory SQL Server の同様のオブジェクトと名前を共有します。 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_idまたはjob_name指定する必要がありますが、両方を指定することはできません。

@job_id

レコードを削除するジョブのジョブ ID 番号。 job_idは uniqueidentifier で、既定値は NULL. job_idまたはjob_name指定する必要がありますが、両方を指定することはできません。

@oldest_date

履歴の中で保持する最も古いレコードを指定します。 oldest_dateはDATETIME2で、既定値は NULL. oldest_dateを指定するとsp_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';