적용 대상:SQL Server
Azure SQL Managed Instance
SQL Server 에이전트 서비스에서 작업에 대한 기록 레코드를 제거합니다.
구문
sp_purge_jobhistory
[ [ @job_name = ] N'job_name' ]
[ , [ @job_id = ] 'job_id' ]
[ , [ @oldest_date = ] oldest_date ]
[ ; ]
인수
[ @job_name = ] N'job_name'
기록 레코드를 삭제할 작업의 이름입니다.
@job_name sysname이며 기본값은 .입니다NULL.
@job_id 또는 @job_name 지정해야 하지만 둘 다 지정할 수는 없습니다.
sysadmin 고정 서버 역할의 멤버 또는 SQLAgentOperatorRole 고정 데이터베이스 역할의 멤버는 @job_name 또는 sp_purge_jobhistory 지정하지 않고 실행할 수 있습니다.
sysadmin 사용자가 이러한 인수를 지정하지 않으면 모든 로컬 및 다중 서버 작업에 대한 작업 기록이 @oldest_date 지정된 시간 내에 삭제됩니다.
SQLAgentOperatorRole 사용자가 이러한 인수를 지정하지 않으면 모든 로컬 작업에 대한 작업 기록이 @oldest_date 지정된 시간 내에 삭제됩니다.
[ @job_id = ] 'job_id'
레코드를 삭제할 작업의 ID입니다.
@job_id 기본값인 NULL입니다.
@job_id 또는 @job_name 지정해야 하지만 둘 다 지정할 수는 없습니다.
sysadmin 또는 SQLAgentOperatorRole 사용자가 이 인수를 사용하는 방법에 대한 자세한 내용은 @job_name 설명의 참고를 참조하세요.
[ @oldest_date = ] oldest_date
기록에 보존할 가장 오래된 레코드입니다.
@oldest_date 기본값인 NULL입니다.
oldest_date 지정되면 sp_purge_jobhistory 지정된 값보다 오래된 레코드만 제거합니다.
반환 코드 값
0(성공) 또는 1(실패).
결과 집합
없음.
설명
sp_purge_jobhistory 성공적으로 완료되면 메시지가 반환됩니다.
이 저장 프로시저는 Azure SQL Database용 Azure Elastic Jobs 서비스에 대한 유사한 개체와 이름을 sp_purge_jobhistory 공유합니다. 탄력적 작업 버전에 대한 자세한 내용은 jobs.sp_purge_jobhistory(Azure 탄력적 작업)를 참조하세요.
사용 권한
기본적으로 sysadmin 고정 서버 역할 또는 SQLAgentOperatorRole 고정 데이터베이스 역할의 멤버만 이 저장 프로시저를 실행할 수 있습니다. sysadmin의 멤버는 모든 로컬 및 다중 서버 작업에 대한 작업 기록을 제거할 수 있습니다. SQLAgentOperatorRole의 멤버는 모든 로컬 작업에 대해서만 작업 기록을 제거할 수 있습니다.
SQLAgentUserRole의 sp_purge_jobhistory 합니다. 이 저장 프로시저에 대한 EXECUTE 권한이 부여된 후 이러한 사용자는 자신이 소유한 작업에 대한 기록만 제거할 수 있습니다.
SQLAgentUserRolemsdb 해당 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하세요.
예제
A. 특정 작업에 대한 기록 제거
다음 예제에서는 이름이 지정된 NightlyBackups작업의 기록을 제거합니다.
USE msdb;
GO
EXECUTE dbo.sp_purge_jobhistory @job_name = N'NightlyBackups';
GO
B. 모든 작업에 대한 기록 제거
sysadmin 고정 서버 역할의 멤버와 SQLAgentOperatorRole의 멤버만 모든 작업에 대한 기록을 제거할 수 있습니다. sysadmin 사용자가 매개 변수 없이 이 저장 프로시저를 실행하면 모든 로컬 및 다중 서버 작업에 대한 작업 기록이 제거됩니다. SQLAgentOperatorRole 사용자가 매개 변수 없이 이 저장 프로시저를 실행하면 모든 로컬 작업에 대한 작업 기록만 제거됩니다.
다음 예에서는 매개 변수 없이 프로시저를 실행하여 모든 기록 레코드를 제거합니다.
USE msdb;
GO
EXECUTE dbo.sp_purge_jobhistory;
GO