Я пытаюсь создать систему уведомлений, которая предупреждает меня, когда что-то неправильно настроено в нашей базе данных ERP. У меня есть отчет, который я вручную должен запускать каждый день, чтобы проверить, есть ли что-нибудь для меня, чтобы исправить. Вместо этого я хотел бы, чтобы сообщение отправлено мне по электронной почте или какое-то уведомление, отправленное мне.Создание хранимой процедуры для подписанного отчета
Кто-то предложил следующее:
Создать отчет в SSRS (Готово, если отчет не имеет никаких данных нет ничего, чтобы исправить, если есть данные, мне нужно что-то исправить)
Создайте хранимую процедуру, которая будет поднимать ошибку, если нет данных
- в докладе SSRS будет использовать хранимую процедуру набора данных
- Подписаться на доклад и будет посылать только по электронной почте, если данные существуют
Я застрял на второй части с хранимой процедурой, вот мой код:
CREATE PROCEDURE JOBNOMATS
AS
SELECT CASE
WHEN (SELECT "JobHead"."JobNum", "JobHead"."Company", "JobHead"."PartDescription", "JobHead"."ReqDueDate", "JobMtl"."PartNum", "JobMtl"."MtlSeq", "JobHead"."InCopyList", "JobHead"."Plant"
FROM {oj "Epicor10Live"."Erp"."JobHead" "JobHead" LEFT OUTER JOIN "Epicor10Live"."Erp"."JobMtl" "JobMtl" ON ("JobHead"."Company"="JobMtl"."Company") AND ("JobHead"."JobNum"="JobMtl"."JobNum")}
WHERE "JobHead"."Company"='011' AND "JobMtl"."PartNum" IS NULL AND NOT ("JobHead"."JobNum"='95057' OR "JobHead"."JobNum"='AISMNJOB')) IS NULL
THEN RAISERROR(50001,16,1)
ELSE SELECT "JobHead"."JobNum", "JobHead"."Company", "JobHead"."PartDescription", "JobHead"."ReqDueDate", "JobMtl"."PartNum", "JobMtl"."MtlSeq", "JobHead"."InCopyList", "JobHead"."Plant"
FROM {oj "Epicor10Live"."Erp"."JobHead" "JobHead" LEFT OUTER JOIN "Epicor10Live"."Erp"."JobMtl" "JobMtl" ON ("JobHead"."Company"="JobMtl"."Company") AND ("JobHead"."JobNum"="JobMtl"."JobNum")}
WHERE "JobHead"."Company"='011' AND "JobMtl"."PartNum" IS NULL AND NOT ("JobHead"."JobNum"='95057' OR "JobHead"."JobNum"='AISMNJOB')
Но я получаю эти две ошибки:
Msg 156, уровень 15, состояние 1, процедура JOBNOMATS, строка 7 Неверный синтаксис рядом с ключевым словом «RAISERROR».
Msg 156, Level 15, State 1, процедура JOBNOMATS, строка 9 Некорректное синтаксис около ключевого слова 'ELSE'.
Для начала ваша 'SELECT CASE' требует и' END' –
@RickS Спасибо. Должен ли я добавить только один END или после каждой оценки? – Machzy