How to create an SQL Alert

Auf diesen Seiten erkläre ich wie man einen SQL Alert mit TSQL erstellt.


Inhaltsverzeichnis


Operator definieren

/*****************************************************************************
Operator definieren
******************************************************************************/
USE MSDB
EXEC sp_help_operator
EXEC sp_add_operator 'IT-Support', 1, 'it-support@medvantis.ch'
EXEC sp_delete_operator 'IT-Support'

top.gifZurück zum Inhalt


Create Error Message

/******************************************************************************
Error Message
Fehlernummer muss grösser als 50000 sein
******************************************************************************/
USE master
SELECT * FROM sysmessages WHERE error > 50000
EXEC sp_addmessage 50001, 10, 'Marathon keine neuen Files per FTP', 'english','true', 'replace'

top.gifZurück zum Inhalt


Create Alert

/******************************************************************************
USER Alerts
19 bis 25 werden automatisch ins APP Log eingetragen
******************************************************************************/
USE msdb
sp_help_alert
sp_help_alert 'Marathon FTP'

USE msdb
EXEC sp_add_alert 'Marathon FTP', 50001, 0, 1, 60,'Error 55001 has occurred.'
EXEC sp_delete_alert 'Marathon FTP'

top.gifZurück zum Inhalt


Create Notification

/******************************************************************************
Notification Einrichten
EXEC sp_add_notification
[ @alert_name = ] 'Marathon FTP' ,
[ @operator_name = ] 'it-support' ,
[ @notification_method = ] 1=E-mail | 2=Pager | 4=Net send
*******************************************************************************

EXEC sp_add_notification 'Marathon FTP', 'it-support', 1

top.gifZurück zum Inhalt


Create Job

/******************************************************************************
Job definieren
EXEC sp_add_job @job_name = 'Check Marathon FTP'
, @enabled = 1
, @description = 'mydescription'
, @start_step_id = 1
, @notify_level_eventlog = 2 -- 0=Never | 1=On Success | 2=On failure | 3=Always
*******************************************************************************/
USE MSDB
EXEC sp_help_job

EXEC sp_add_jobstep @job_name ='Check Marathon FTP'
, @step_name='Check FTP'
, @command = 'declare @differenz int select @differenz = datediff(dd, (SELECT TOP 1 startzeit FROM v_call_reference ORDER BY Startzeit DESC), getdate()) select @differenz'

EXEC sp_add_jobstep @job_name ='Check Marathon FTP'
, @step_name='Check FTP 2'
, @command = 'declare @differenz int + CHAR(13) + select @differenz = datediff(dd, (SELECT TOP 1 startzeit FROM v_call_reference ORDER BY Startzeit DESC), getdate()) + CHAR(13) + select @differenz + CHAR(13) + if @differenz > 1 + CHAR(13) + RAISERROR ("Marathon FTP",10,1)'

EXEC sp_add_jobschedule @job_name ='Check Marathon FTP'
, @name='daily'
, @freq_type=4
, @freq_interval=1

EXEC sp_update_job @job_name= 'Check Marathon FTP'
, @notify_level_email = 2 -- 0=Never | 1=On Success | 2=On failure | 3=Always
,@notify_email_operator_name ='it-support'

top.gifZurück zum Inhalt


Raise Error

/******************************************************************************
Raise the Error
*******************************************************************************/
USE master
RAISERROR ('Marathon FTP',10,1)
EXEC xp_logevent 50001, 'Auf dem Server SRVDB002 sind seit über 24 Stunden keine neuen Marathon Gespräche mehr in der Datenbank eingetragen werden'

top.gifZurück zum Inhalt


Test Querys

/******************************************************************************
JOB TEST QUERY
DATEDIFF ( datepart , startdate , enddate )
*******************************************************************************/

use ASC_IAS
SELECT TOP 1 startzeit FROM v_call_reference ORDER BY Startzeit DESC

declare @differenz int
select @differenz = datediff(dd, (SELECT TOP 1 startzeit FROM v_call_reference ORDER BY Startzeit DESC), getdate())
select @differenz
if @differenz > 1
RAISERROR ('Marathon FTP',10,1)

top.gifZurück zum Inhalt


Copyright © November 2004 - Andres Bohren, Icewolf Software