Вот исправленная версия вашего скрипта. Было две проблемы
@echo off
set /p age="enter your age:"
if %age% leq 50 (
if %age% geq 20 (
echo "You are %age% years old in the 21st century."
) else (
echo "You are not in range."
)
) else (
echo "You are not in range."
)
pause
нет нет никаких уведомлений для этого. необходимо будет настроить трассировку и опросить ее время от времени.
Если Вы не ищете бесплатное решение, Вы могли бы смотреть на Часового SQL. Это делает то, что Вы просите и т.д.
Можно зарегистрироваться, медленные рабочие запросы используют SQL Profiler, но это не поможет Вам с предупреждением, конкретно. (Я предполагаю, что Вы могли зарегистрироваться в Файл или в таблицу базы данных и иметь что-то еще, "слушают" и выдают предупреждение).
В случае, если Вы не знакомы с SQL Profiler, вот шаги:
Необходимо выполнить SQL Profiler на чем-то другом, чем сам сервер.
Запустите с шаблона SQLProfilerTSQL_Duration
Установите фильтр: продолжительность: "Больше, чем" к 1 000 (milliseonds)
В фильтрах можно ограничить Базу данных, Вход в систему, или подобный при необходимости.
В Событиях можно ограничить просто SProcs (значение по умолчанию также включает SQL-операторы),
Если найдено это на sqlservercentral (это, вероятно, для более старой версии SQL Server, но все еще могло бы относиться к 2008),
Аварийная процедура продолжительного задания http://www.sqlservercentral.com/scripts/Lock+and+Connection+Management/30144/
Текст ниже, если Вы наклоняете доступ это.
Для заданий, которые периодически работают и должны занять только короткое время для выполнения, DBA может хотеть знать, когда задание работало в течение чрезмерного времени. В этом случае просто проверка, чтобы видеть, РАБОТАЕТ ЛИ задание, не сделает; способность удостовериться, что это не работало в течение длительного периода, необходима. Соответствие идентификатору задания к идентификатору процесса в sysprocesses требует, чтобы некоторая реконструкция идентификатора задания сделала соответствие. Этот сценарий создает хранимую процедуру, которая примет, что имя задания, максимальное время выполнения, позволенное, и адрес электронной почты, уведомляет. Это будет затем использовать имя задания, чтобы перетянуть число задания и проверить sysprocesses (на основе идентификатора процесса, являющегося частью названия программы) для определения количества времени, которое задание выполняло, затем предупреждает, если то время за "время, позволенное" параметр.
CREATE proc sp_check_job_running
@job_name char(50),
@minutes_allowed int,
@person_to_notify varchar(50)
AS
DECLARE @var1 char(1),
@process_id char(8),
@job_id_char char(8),
@minutes_running int,
@message_text varchar(255)
select @job_id_char = substring(CAST(job_id AS char(50)),1,8)
from msdb..sysjobs
where name = @job_name
select @process_id = substring(@job_id_char,7,2) +
substring(@job_id_char,5,2) +
substring(@job_id_char,3,2) +
substring(@job_id_char,1,2)
select @minutes_running = DATEDIFF(minute,last_batch, getdate())
from master..sysprocesses
where program_name LIKE ('%0x' + @process_id +'%')
if @minutes_running > @minutes_allowed
BEGIN
select @message_text = ('Job '
+ UPPER(SUBSTRING(@job_name,1,LEN(@job_name)))
+ ' has been running for '
+ SUBSTRING(CAST(@minutes_running AS char(5)),1,LEN(CAST(@minutes_running AS char(5))))
+ ' minutes, which is over the allowed run time of '
+ SUBSTRING(CAST(@minutes_allowed AS char(5)),1,LEN(CAST(@minutes_allowed AS char(5))))
+ ' minutes.')
EXEC master..xp_sendmail
@recipients = @person_to_notify,
@message = @message_text,
@subject = 'Long-Running Job to Check'
END
-- Typical job step syntax for job to do the checking
execute sp_check_job_running
'JobThatSHouldBeDoneIn5Minutes',
5,
'DBAdmin@mycompany.com'