다음을 통해 공유


sp_purge_jobhistory(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed Instance

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

Transact-SQL 구문 표기 규칙

구문

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