다음을 통해 공유


sp_add_alert(Transact-SQL)

경고를 작성합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_add_alert [ @name = ] 'name' 
     [ , [ @message_id = ] message_id ] 
     [ , [ @severity = ] severity ] 
     [ , [ @enabled = ] enabled ]
     [ , [ @delay_between_responses = ] delay_between_responses ] 
     [ , [ @notification_message = ] 'notification_message' ] 
     [ , [ @include_event_description_in = ] include_event_description_in ] 
     [ , [ @database_name = ] 'database' ] 
     [ , [ @event_description_keyword = ] 'event_description_keyword_pattern' ] 
     [ , { [ @job_id = ] job_id | [ @job_name = ] 'job_name' } ] 
     [ , [ @raise_snmp_trap = ] raise_snmp_trap ] 
     [ , [ @performance_condition = ] 'performance_condition' ] 
     [ , [ @category_name = ] 'category' ] 
     [ , [ @wmi_namespace = ] 'wmi_namespace' ]
     [ , [ @wmi_query = ] 'wmi_query' ]

인수

  • [ @name = ] 'name'
    경고의 이름입니다. 이름은 경고에 대한 응답으로 메시지가 전달된 전자 메일 또는 호출기에 표시됩니다. 이름은 반드시 고유해야 하며 퍼센트(%) 문자를 포함할 수 있어야 합니다. name은 sysname이며 기본값은 없습니다.

  • [ @message_id = ] message_id
    경고를 정의하는 메시지 오류 번호입니다. 일반적으로 sysmessages 테이블의 오류 번호에 해당됩니다. message_id는 int이며 기본값은 0입니다. severity를 사용하여 경고를 정의하는 경우 message_id는 0 또는 NULL이어야 합니다.

    [!참고]

    Microsoft Windows 응용 프로그램 로그에 기록된 sysmessages 오류만 경고가 전달되도록 할 수 있습니다.

  • [ @severity = ] severity
    경고를 정의하는 1에서 25까지의 심각도 수준입니다. sysmessages 테이블에 저장된 지정된 심각도의 SQL Server 메시지가 Microsoft Windows 응용 프로그램 로그로 전달되면 경고가 전달됩니다. severity는 int이며 기본값은 0입니다. message_id를 사용하여 경고를 정의하는 경우 severity는 0이어야 합니다.

  • [ @enabled =] enabled
    경고의 현재 상태를 나타냅니다. enabled는 tinyint이며 기본값은 1(사용)입니다. 0인 경우에는 경고가 비활성화되어 실행할 수 없습니다.

  • [ @delay_between_responses = ] delay_between_responses
    경고에 대한 응답에 걸리는 대기 시간(초)입니다. delay_between_responses는 int이며 기본값은 응답에 걸리는 대기 시간이 없음(각 경고의 발생이 응답을 생성함)을 나타내는 0입니다. 응답은 다음 두 가지 형식 중 한 가지 또는 두 가지 모두를 사용할 수 있습니다.

    • 전자 메일 또는 호출기를 통해 전달된 한 개 이상의 알림

    • 실행할 작업

    이 값을 설정함으로써 단기간에 경고가 반복적으로 발생하는 경우, 원하지 않는 전자 메일 메시지가 전달되지 않도록 하는 등의 작업을 할 수 있습니다.

  • [ @notification_message = ] 'notification_message'
    전자 메일, net send 또는 호출기 알림의 일부로 운영자에게 전달되는 선택적 추가 메시지입니다. notification_message는 nvarchar(512)이며 기본값은 NULL입니다. notification_message를 지정하면 교정 프로시저와 같은 특별한 메모를 추가하는 데 유용합니다.

  • [ @include_event_description_in = ] include_event_description_in
    SQL Server 오류에 대한 설명을 알림 메시지의 일부로 포함할지 여부를 나타냅니다. include_event_description_in은 tinyint이며 기본값은 5(전자 메일 및 net send)입니다. OR 논리 연산자와 함께 아래 값 중 하나 이상을 사용할 수 있습니다.

    중요 정보중요

    MicrosoftSQL Server 이후 버전에서는 SQL Server 에이전트에서 호출기 및 net send 옵션이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오.

    설명

    0(기본값)

    없음

    1

    전자 메일

    2

    호출기

    4

    Net Send

  • [ @database_name =] 'database'
    오류가 있는 경우 경고가 시작되도록 해 놓은 데이터베이스입니다. database를 지정하지 않으면 오류가 발생한 위치와 관계없이 경고가 발생합니다. database는 sysname입니다. 이름을 대괄호([ ])로 묶는 것은 허용되지 않습니다. 기본값은 NULL입니다.

  • [ @event_description_keyword = ] 'event_description_keyword_pattern'
    SQL Server 오류에 대한 설명과 일치해야 하는 문자 시퀀스입니다. Transact-SQL LIKE 식 패턴 일치 문자를 사용할 수 있습니다. event_description_keyword_pattern은 nvarchar(100)이며 기본값은 NULL입니다. 이 매개 변수는 개체 이름(예: %customer_table%)을 필터링하는 데 유용합니다.

  • [ @job_id =] job_id
    해당 경고에 대한 응답으로 실행할 작업의 작업 ID입니다. job_id는 uniqueidentifier이며 기본값은 NULL입니다.

  • [ @job_name =] 'job_name'
    해당 경고에 대한 응답으로 실행할 작업의 이름입니다. job_name은 sysname이며 기본값은 NULL입니다.

    [!참고]

    job_id 또는 job_name 중 하나를 지정해야 하며 둘 다를 지정할 수는 없습니다.

  • [ @raise_snmp_trap = ] raise_snmp_trap
    SQL Server 버전 7.0에서는 구현되지 않습니다. raise_snmp_trap은 tinyint이며 기본값은 0입니다.

  • [ @performance_condition = ] 'performance_condition'
    'itemcomparatorvalue' 형식으로 표시되는 값입니다. performance_condition은 nvarchar(512)이고 기본값은 NULL이며 다음 요소로 구성됩니다.

    형식 요소

    설명

    Item

    성능 개체, 성능 카운터 또는 카운터의 명명된 인스턴스

    Comparator

    다음 연산자 중 하나: >, < 또는 =

    Value

    카운터의 숫자 값

  • [ @category_name =] 'category'
    경고 범주의 이름입니다. category는 sysname이며 기본값은 NULL입니다.

  • [ @wmi_namespace= ] 'wmi_namespace'
    이벤트를 쿼리하는 WMI 네임스페이스입니다. wmi_namespace는 sysname이며 기본값은 NULL입니다. 로컬 서버의 네임스페이스만 지원됩니다.

  • [ @wmi_query= ] 'wmi_query'
    경고에 대한 WMI 이벤트를 지정하는 쿼리입니다. wmi_query는 nvarchar(512)이며 기본값은 NULL입니다.

반환 코드 값

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

결과 집합

없음

주의

sp_add_alertmsdb 데이터베이스에서 실행해야 합니다.

SQL Server 및 SQL Server 응용 프로그램에 의해 생성된 오류 또는 메시지가 Windows 응용 프로그램 로그로 전달되어 경고가 발생하는 상황입니다.

  • 심각도 19 이상의 sysmessages 오류

  • WITH LOG 구문과 함께 호출된 모든 RAISERROR 문

  • sp_altermessage를 사용하여 수정되었거나 생성된 모든 sysmessages 오류

  • xp_logevent를 사용하여 로깅된 모든 이벤트

SQL Server Management Studio는 전체 경고 시스템을 간편하게 그래픽 방식으로 관리할 수 있도록 해 줄 뿐만 아니라 경고 인프라를 구성하는 데 있어서도 권장되는 방법입니다.

경고가 제대로 작동하지 않는 경우에는 다음 사항을 확인하십시오.

  • SQL Server 에이전트 서비스가 실행 중인지 여부

  • Windows 응용 프로그램 로그에 표시된 이벤트

  • 경고의 설정 여부

  • master 데이터베이스에서 xp_logevent로 생성된 이벤트가 발생합니다. 그러므로 경고에 대한 @database_name'master' 또는 NULL이 아닌 경우 xp_logevent는 경고를 실행하지 않습니다.

사용 권한

기본적으로 sysadmin 고정 서버 역할의 멤버만 sp_add_alert를 실행할 수 있습니다.

다음 예에서는 시작할 때 Back up the AdventureWorks Database 작업을 실행하는 경고(Test Alert)를 추가합니다.

[!참고]

이 예에서는 메시지 55001 및 Back up the AdventureWorks Database 작업이 이미 있다고 가정합니다. 이 예는 설명을 목적으로 사용한 것입니다.

USE msdb ;
GO

EXEC dbo.sp_add_alert
    @name = N'Test Alert',
    @message_id = 55001, 
   @severity = 0, 
   @notification_message = N'Error 55001 has occurred. The database will be backed up...', 
   @job_name = N'Back up the AdventureWorks Database' ;
GO