sp_purge_jobhistory (Transact-SQL)sp_purge_jobhistory (Transact-SQL)

適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

ジョブの履歴レコードを削除します。Removes the history records for a job.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

  
sp_purge_jobhistory   
   {   [ @job_name = ] 'job_name' |   
     | [ @job_id = ] job_id }  
   [ , [ @oldest_date = ] oldest_date ]  

引数Arguments

[ @job_name = ] 'job_name' 履歴レコードを削除するジョブの名前を指定します。[ @job_name = ] 'job_name' The name of the job for which to delete the history records. job_namesysname,、既定値は NULL です。job_nameis sysname, with a default of NULL. Job_idまたはjob_nameのいずれかを指定する必要がありますが、両方を指定することはできません。Either job_id or job_name must be specified, but both cannot be specified.

注意

Sysadmin固定サーバーロールのメンバー、またはSqlagentoperatorrole固定データベースロールのメンバーは、 job_nameまたはjob_idを指定せずにsp_purge_jobhistoryを実行できます。Members of the sysadmin fixed server role or members of the SQLAgentOperatorRole fixed database role can execute sp_purge_jobhistory without specifying a job_name or job_id. Sysadminユーザーがこれらの引数を指定しない場合、すべてのローカルジョブとマルチサーバージョブのジョブ履歴がoldest_dateによって指定された時間内に削除されます。When sysadmin users do not specify these arguments, the job history for all local and multiserver jobs is deleted within the time specified by oldest_date. Sqlagentoperatorroleユーザーがこれらの引数を指定しない場合、すべてのローカルジョブのジョブ履歴はoldest_dateで指定された時間内に削除されます。When SQLAgentOperatorRole users do not specify these arguments, the job history for all local jobs is deleted within the time specified by oldest_date.

レコードを削除するジョブのジョブ識別番号を [ @job_id = ] job_id します。[ @job_id = ] job_id The job identification number of the job for the records to be deleted. job_iduniqueidentifier,、既定値は NULL です。job_id is uniqueidentifier, with a default of NULL. Job_idまたはjob_nameのいずれかを指定する必要がありますが、両方を指定することはできません。Either job_id or job_name must be specified, but both cannot be specified. SysadminまたはSqlagentoperatorroleユーザーがこの引数を使用する方法の詳細については、 @job_nameの説明にある注を参照してください。See the note in the description of @job_name for information about how sysadmin or SQLAgentOperatorRole users can use this argument.

履歴に保持する最も古いレコードを [ @oldest_date = ] oldest_date します。[ @oldest_date = ] oldest_date The oldest record to retain in the history. oldest_datedatetime,、既定値は NULL です。oldest_date is datetime, with a default of NULL. Oldest_dateを指定した場合、 sp_purge_jobhistory指定された値よりも古いレコードだけが削除されます。When oldest_date is specified, sp_purge_jobhistory only removes records that are older than the value specified.

リターン コードの値Return Code Values

0 (成功) または1 (失敗)0 (success) or 1 (failure)

結果セットResult Sets

[InclusionThresholdSetting]None

RemarksRemarks

Sp_purge_jobhistoryが正常に完了すると、メッセージが返されます。When sp_purge_jobhistory completes successfully, a message is returned.

アクセス許可Permissions

既定では、このストアドプロシージャを実行できるのは、 sysadmin固定サーバーロールまたはSqlagentoperatorrole固定データベースロールのメンバーだけです。By default, only members of the sysadmin fixed server role or the SQLAgentOperatorRole fixed database role can execute this stored procedure. Sysadminのメンバーは、すべてのローカルジョブとマルチサーバージョブのジョブ履歴を削除できます。Members of sysadmin can purge the job history for all local and multiserver jobs. Sqlagentoperatorroleのメンバーは、すべてのローカルジョブのジョブ履歴のみを削除できます。Members of SQLAgentOperatorRole can purge the job history for all local jobs only.

SQLAgentUserRoleのメンバーやSQLAgentReaderRoleのメンバーなど、他のユーザーには、 sp_purge_jobhistoryに対する EXECUTE 権限が明示的に付与されている必要があります。Other users, including members of SQLAgentUserRole and members of SQLAgentReaderRole, must explicitly be granted the EXECUTE permission on sp_purge_jobhistory. このストアド プロシージャに対する EXECUTE 権限が許可されていると、これらのユーザーは自分が所有しているジョブの履歴だけを削除できます。After being granted EXECUTE permission on this stored procedure, these users can only purge the history for jobs that they own.

SQLAgentUserRoleSQLAgentReaderRole、およびSqlagentoperatorroleの固定データベースロールは、 msdbデータベースにあります。The SQLAgentUserRole, SQLAgentReaderRole, and SQLAgentOperatorRole fixed database roles are in the msdb database. 権限の詳細については、「 SQL Server エージェント固定データベースロール」を参照してください。For details about their permissions, see SQL Server Agent Fixed Database Roles.

使用例Examples

A.A. 特定のジョブの履歴を削除するRemove history for a specific job

次の例では、NightlyBackupsという名前のジョブの履歴を削除します。The following example removes the history for a job named NightlyBackups.

USE msdb ;  
GO  
  
EXEC dbo.sp_purge_jobhistory  
    @job_name = N'NightlyBackups' ;  
GO  

b.B. すべてのジョブの履歴を削除するRemove history for all jobs

注意

Sysadmin固定サーバーロールのメンバー、およびSqlagentoperatorroleのメンバーだけが、すべてのジョブの履歴を削除できます。Only members of the sysadmin fixed server role and members of the SQLAgentOperatorRole can remove history for all jobs. Sysadminユーザーがパラメーターを使用せずにこのストアドプロシージャを実行すると、すべてのローカルジョブとマルチサーバージョブのジョブ履歴が削除されます。When sysadmin users execute this stored procedure with no parameters, the job history for all local and multiserver jobs is purged. Sqlagentoperatorroleユーザーがパラメーターを使用せずにこのストアドプロシージャを実行すると、すべてのローカルジョブのジョブ履歴のみが削除されます。When SQLAgentOperatorRole users execute this stored procedure with no parameters, only the job history for all local jobs is purged.

次の例では、パラメーターを使用せずにプロシージャを実行して、すべての履歴レコードを削除します。The following example executes the procedure with no parameters to remove all history records.

USE msdb ;  
GO  
  
EXEC dbo.sp_purge_jobhistory ;  
GO  

参照See Also

transact-sql ( の) sp_help_jobsp_help_job (Transact-SQL)
transact-sql ( の) sp_help_jobhistorysp_help_jobhistory (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL) System Stored Procedures (Transact-SQL)
GRANT (オブジェクトの権限の許可) (Transact-SQL)GRANT Object Permissions (Transact-SQL)