Запрос для преобразования запроса в HTML и отправки по электронной почте - PullRequest
0 голосов
/ 03 сентября 2018

Я использовал сохраненный процесс для преобразования запроса SQL в данные в формате HTML. Так что я могу отправить эти данные по электронной почте кому-то, использующему работу sql.

Я использую следующее для отправки электронной почты: Query - это сохраненный процесс, который преобразует SQL-запрос в формат HTML

DECLARE @html nvarchar(MAX);
DECLARE @INPUT NVARCHAR(20)
SET @INPUT= ''LATE''
EXEC query @html = @html OUTPUT,  @query = N'select Studentsurname,absencecomment,Absencedate from absence where AbsenceDate=CAST(CAST(GETDATE() AS DATE) AS DATETIME and YearLevel in (11,12) and absencemeaning= @INPUT', @orderBy = N'ORDER BY StudentSurname';

EXEC msdb.dbo.sp_send_dbmail

    @profile_name = 'PROFILE',
    @recipients = 'email@email',
    @subject = 'HTML email',
    @body = @html,
    @body_format = 'HTML',
    @query_no_truncate = 1,
    @attach_query_result_as_file = 0;

Моя проблема, когда я пытаюсь выполнить вышеупомянутую часть, это дает мне ошибку, говоря Неверный синтаксис рядом с 'Поздно'

Я делаю что-то не так при передаче SQL-запроса к хранимой процедуре. Есть ли другой способ передать SQL-запрос к хранимой процедуре?

Проблема возникает только тогда, когда я использую предложение where. Если мой оператор выбора заканчивается просто «из имени_таблицы», тогда никаких проблем не возникает.

1 Ответ

0 голосов
/ 03 сентября 2018

Попробуйте это

           DECLARE @html nvarchar(MAX);
           DECLARE @INPUT NVARCHAR(20)
           SET @INPUT= '''LATE''' --To add string with Quotes like this..
           Declare @query nvarchar(MAX) = N'select Studentsurname,absencecomment,Absencedate from absence where AbsenceDate=CAST(CAST(GETDATE() AS DATE) AS DATETIME and YearLevel in (11,12) and absencemeaning='+ @INPUT
           , @orderBy varchar(max) = N'ORDER BY StudentSurname';
           print @query --see difference near 'LATE'
           print @orderBy
           EXEC query @html = @html OUTPUT, @query , @orderBy
...