sp_add_alert(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 테이블에 저장된, 지정된 심각도의 Microsoft 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 논리 연산자를 사용하여 아래 값 중 하나 이상을 가질 수 있습니다.값 설명 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
Microsoft 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_alert는 msdb 데이터베이스에서 실행해야 합니다.
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
참고 항목
참조
sp_add_notification(Transact-SQL)
sp_altermessage (Transact-SQL)
sp_delete_alert(Transact-SQL)
sp_help_alert(Transact-SQL)
sp_update_alert(Transact-SQL)
sys.sysperfinfo(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)