SQL Server 2008 R2 — sp_send_dbmail

В начале отмечаю - я не специалист по написанию кода. Мне нужна ваша помощь. Я хочу реализовать систему уведомлений по электронной почте через sp_send_dbmail.

Код:

USE msdb
go

SET QUOTED_IDENTIFIER OFF
SET ANSI_NULLS ON

EXEC sp_send_dbmail @profile_name='PROFILENAME',
    @recipients='[email protected]',
    @query_result_header=0,
    @attach_query_result_as_file=0,
    @query = "select Kod,Nazwa from DATABASE.dbo.Towar where Kod NOT LIKE '%?%' and (AsId=205 or AsId=304 or AsId=289 or AsId=321 or AsId=306 or AsId=217 or AsId=261) and Aktywny=1 ORDER BY Kod",
    @body_format = "text",
    @subject='SUBCJECT'
GO

SQL-запрос работает и отправляет электронное письмо, но также отправляет пустые строки. Например. Как избавиться от них?

1916                 SER TWAROGOWY WIEJSKI LUZ                                                                                                                                                                                                                  

Я также хотел бы, чтобы sp_send_dbmail отправлял электронное письмо только тогда, когда запрос возвращает данные. Если нет данных - не отправляет сообщения.

Что вы имеете в виду под "пустыми строками"? Ваш пример не показывает пустые строки. Если вы хотите, чтобы отправка была условной, то вам нужен if перед звонком.

Gordon Linoff 16.03.2019 14:21

Кстати, я предлагаю вам использовать SET QUOTED_IDENTIFIER ON и заключать литералы в стандартные одинарные кавычки ANSI/ISO, удваивая одинарные кавычки внутри строк.

Dan Guzman 16.03.2019 14:25

Это электронная почта. Между данными есть пустые строки. Я предпочитаю, чтобы сообщение выглядело более разборчивым. Ссылка: drive.google.com/file/d/1MZvgEiF_t4H-7vbHGrYAczPEfiayTAiG/…

mlik 16.03.2019 14:58
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
3
84
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, вам нужно IF, если вы хотите условное электронное письмо:

IF EXISTS (select Kod, Nazwa from DATABASE.dbo.Towar where Kod NOT LIKE '%?%' and AsId IN (205, 304, 289, 321, 306, 217, 261) and Aktywny = 1)
BEGIN
    EXEC sp_send_dbmail @profile_name='PROFILENAME',
        @recipients='[email protected]',
        @query_result_header=0,
        @attach_query_result_as_file=0,
        @query='select Kod, Nazwa from DATABASE.dbo.Towar where Kod NOT LIKE ''%?%'' and AsId IN (205, 304, 289, 321, 306, 217, 261) and Aktywny=1 ORDER BY Kod',
        @body_format='text',
        @subject='SUBCJECT';
END;

GO

Эти «пустые строки» являются возвратом каретки. CHR(10) и CHR(13)

Nick.McDermaid 16.03.2019 14:59

Другие вопросы по теме