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を参照してください。
構文
[jobs].sp_purge_jobhistory [ @job_name = ] 'job_name'
[ , [ @job_id = ] job_id ]
[ , [ @oldest_date = ] oldest_date ]
引数
[ @job_name = ] N'job_name'
履歴レコードを削除するジョブの名前。 @job_name は nvarchar(128) で、既定値は NULL
です。
@job_idまたは@job_nameを指定する必要がありますが、両方を指定することはできません。
[ @job_id = ] job_id
レコードを削除するジョブのジョブ ID 番号。 @job_id は uniqueidentifier で、既定値は NULL
です。
@job_idまたは@job_nameを指定する必要がありますが、両方を指定することはできません。
[ @oldest_date = ] oldest_date
履歴の中で保持する最も古いレコードを指定します。 @oldest_date は datetime2 で、既定値は 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';