다음을 통해 공유


sysmail_delete_log_sp (Transact-SQL)

적용 대상: SQL Server

데이터베이스 메일 로그에서 이벤트를 삭제합니다. 로그의 모든 이벤트 또는 날짜 또는 형식 조건을 충족하는 이벤트를 삭제합니다.

Transact-SQL 구문 표기 규칙

구문

sysmail_delete_log_sp [ [ @logged_before = ] 'logged_before' ]
    [ , [ @event_type = ] 'event_type' ]
[ ; ]

인수

[ @logged_before = ] 'logged_before'

@logged_before 인수에 지정된 날짜 및 시간까지 항목을 삭제합니다. @logged_before 기본적으로 datetime NULL 입니다. NULL 는 모든 날짜를 나타냅니다.

[ @event_type = ] 'event_type'

@event_type 지정된 형식의 로그 항목을 삭제합니다. @event_type 기본값이 없는 varchar(15)입니다. 유효한 항목은 다음과 같습니다.

  • success
  • warning
  • error
  • informational

NULL은 모든 이벤트 유형을 나타냅니다.

반환 코드 값

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

설명

저장 프로시저를 sysmail_delete_log_sp 사용하여 데이터베이스 메일 로그에서 항목을 영구적으로 삭제합니다. 선택적 인수를 사용하면 날짜와 시간을 제공하여 이전 레코드만 삭제할 수 있습니다. 이 인수에 지정된 날짜 및 시간보다 오래된 이벤트는 삭제됩니다. 선택적 인수를 사용하면 @event_type 인수로 지정된 특정 형식의 이벤트만 삭제할 수 있습니다.

데이터베이스 메일 로그에서 항목을 삭제해도 데이터베이스 메일 테이블에서 전자 메일 항목이 삭제되지는 않습니다. sysmail_delete_mailitems_sp 사용하여 데이터베이스 메일 테이블에서 전자 메일을 삭제합니다.

사용 권한

이 절차에 대한 사용 권한을 부여 EXECUTE 할 수 있지만 SQL Server 업그레이드 중에 이러한 권한이 재정의될 수 있습니다.

예제

A. 모든 이벤트 삭제

다음 예제에서는 데이터베이스 메일 로그의 모든 이벤트를 삭제합니다.

EXEC msdb.dbo.sysmail_delete_log_sp;
GO

B. 가장 오래된 이벤트 삭제

다음 예제에서는 2022년 10월 9일보다 오래된 데이터베이스 메일 로그에서 이벤트를 삭제합니다.

EXEC msdb.dbo.sysmail_delete_log_sp
    @logged_before = 'October 9, 2022';
GO

C. 특정 형식의 모든 이벤트 삭제

다음 예에서는 데이터베이스 메일 로그의 성공 메시지를 삭제합니다.

EXEC msdb.dbo.sysmail_delete_log_sp
    @event_type = 'success' ;
GO