sp_purge_jobhistory(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, SQLAgentReaderRole 및 SQLAgentOperatorRole 고정 데이터베이스 역할은 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