sp_purge_jobhistory(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed Instance

SQL Server 에이전트 서비스에서 작업에 대한 기록 레코드를 제거합니다.

Transact-SQL 구문 표기 규칙

구문

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

인수

@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

레코드를 삭제할 작업의 ID입니다. job_id 기본값NULLuniqueidentifier입니다. job_id 또는 job_name 지정해야 하지만 둘 다 지정할 수는 없습니다.

sysadmin 또는 SQLAgentOperatorRole 사용자가 이 인수를 사용하는 방법에 대한 자세한 내용은 @job_name 설명의 참고를 참조하세요.

@oldest_date

기록에 보존할 가장 오래된 레코드입니다. oldest_date datetime이며 기본값은 .입니다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 Elastic Jobs)(Transact-SQL)를 참조하세요.

사용 권한

기본적으로 sysadmin 고정 서버 역할 또는 SQLAgentOperatorRole 고정 데이터베이스 역할의 멤버만 이 저장 프로시저를 실행할 수 있습니다.

sysadmin멤버는 모든 로컬 및 다중 서버 작업에 대한 작업 기록을 제거할 수 있습니다. SQLAgentOperatorRole멤버는 모든 로컬 작업에 대해서만 작업 기록을 제거할 수 있습니다.

SQLAgentUserRole의 멤버 및 SQLAgentReaderRole멤버를 포함한 다른 사용자에게는 EXECUTE 권한이 sp_purge_jobhistory명시적으로 부여되어야 합니다. 이 저장 프로시저에 대한 EXECUTE 권한이 부여된 후 이러한 사용자는 자신이 소유한 작업에 대한 기록만 제거할 수 있습니다.

SQLAgentUserRole, SQLAgentReaderRoleSQLAgentOperatorRole 고정 데이터베이스 역할은 데이터베이스에 msdb 있습니다. 해당 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하세요.

예제

A. 특정 작업에 대한 기록 제거

다음 예제에서는 이름이 지정된 NightlyBackups작업의 기록을 제거합니다.

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

B. 모든 작업에 대한 기록 제거

참고 항목

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

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

USE msdb ;  
GO  
  
EXEC dbo.sp_purge_jobhistory ;  
GO  

다음 단계