다음을 통해 공유


sp_purge_jobhistory(Transact-SQL)

작업에 대한 기록 레코드를 제거합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

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

인수

  • [ @job_name= ] 'job_name'
    기록 레코드를 삭제할 작업의 이름입니다. job_name은 sysname이며 기본값은 NULL입니다. job_id 또는 job_name 중 하나를 지정해야 하며 둘 다를 지정할 수는 없습니다.

    [!참고]

    sysadmin 고정 서버 역할 또는 SQLAgentOperatorRole 고정 데이터베이스 역할의 멤버는 job_name 또는 job_id를 지정하지 않아도 sp_purge_jobhistory를 실행할 수 있습니다. sysadmin 사용자가 이러한 인수를 지정하지 않으면 oldest_date로 지정한 시간 내에 모든 로컬 및 다중 서버 작업에 대한 작업 기록이 삭제됩니다. SQLAgentOperatorRole 사용자가 이러한 인수를 지정하지 않으면 oldest_date로 지정한 시간 내에 모든 로컬 작업에 대한 작업 기록이 삭제됩니다.

  • [ @job_id= ] job_id
    레코드를 삭제할 작업의 ID 번호입니다. job_id는 uniqueidentifier이며 기본값은 NULL입니다. job_id 또는 job_name 중 하나를 지정해야 하며 둘 다를 지정할 수는 없습니다. sysadmin 또는 SQLAgentOperatorRole 사용자가 이 인수를 사용할 수 있는 방법은 @job_name에 대한 설명을 참조하십시오.

  • [ @oldest_date = ] oldest_date
    기록에 보존할 가장 오래된 레코드입니다. oldest_date는 datetime이며 기본값은 NULL입니다. oldest_date를 지정하면 sp_purge_jobhistory는 지정한 값보다 오래된 레코드만 제거합니다.

반환 코드 값

0(성공) 또는 1(실패)

결과 집합

없음

주의

sp_purge_jobhistory가 완료되면 메시지가 반환됩니다.

사용 권한

기본적으로 sysadmin 고정 서버 역할 또는 SQLAgentOperatorRole 고정 데이터베이스 역할의 멤버만 이 저장 프로시저를 실행할 수 있습니다. sysadmin의 멤버는 모든 로컬 및 다중 서버 작업에 대한 작업 기록을 제거할 수 있습니다. SQLAgentOperatorRole의 멤버는 모든 로컬 작업에 대한 작업 기록만 제거할 수 있습니다.

SQLAgentUserRole 멤버와 SQLAgentReaderRole 멤버를 비롯한 다른 사용자는 sp_purge_jobhistory에 대한 EXECUTE 권한을 명시적으로 부여 받아야 합니다. 이러한 사용자는 이 저장 프로시저에 대해 EXECUTE 권한을 부여 받은 다음에도 각자 소유한 작업에 대한 기록만 제거할 수 있습니다.

SQLAgentUserRole, SQLAgentReaderRoleSQLAgentOperatorRole 고정 데이터베이스 역할은 msdb 데이터베이스에 있습니다. 각 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하십시오.

1. 특정 작업의 기록 제거

다음 예에서는 NightlyBackups이라는 작업의 기록을 제거합니다.

USE msdb ;
GO

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

2. 모든 작업의 기록 제거

[!참고]

sysadmin 고정 서버 역할 및 SQLAgentOperatorRole의 멤버만 모든 작업에 대한 기록을 제거할 수 있습니다. sysadmin 사용자가 매개 변수 없이 이 저장 프로시저를 실행하면 모든 로컬 및 다중 서버 작업에 대한 작업 기록이 제거됩니다. SQLAgentOperatorRole 사용자가 매개 변수 없이 이 저장 프로시저를 실행하면 모든 로컬 작업에 대한 작업 기록만 제거됩니다.

다음 예에서는 매개 변수 없이 프로시저를 실행하여 모든 기록 레코드를 제거합니다.

USE msdb ;
GO

EXEC dbo.sp_purge_jobhistory ;
GO