次の方法で共有


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

適用対象: Azure SQL Database

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

このストアド プロシージャは、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

レコードを削除するジョブのジョブ ID 番号。 @job_iduniqueidentifier で、既定値は NULL です。

@job_idまたは@job_nameを指定する必要がありますが、両方を指定することはできません。

[ @oldest_date = ] oldest_date

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