SQL Server SP_SEND_DBMAIL Вложение файла изображения

Я использую триггер на столе для отправки электронной почты с помощью sp_send_dbmail.

Я хочу включить вложение файла в электронное письмо типа изображения.

Необработанные данные для jpeg хранятся в столбце ndl_Image, который имеет двоичный тип.

У меня есть следующий код: -

DECLARE @ReferenceID varchar(max)
DECLARE @Recipient varchar(Max)
DECLARE @Body varchar(max)
DECLARE @Subject varchar(max)
DECLARE @Q varchar(max)

--Get the EntryId and FormID for the inserted data.
SET @ReferenceID = 40
SET @Recipient = (SELECT ndl_CategorySendTo FROM ndl_config WHERE ndl_CategoryName = 'Dead Animal')
SET @Body = '<html>A new request has been created.</html>'
SET @Subject = 'NDL Report It: New Request #'+@ReferenceID
SET @Q = 'SELECT ndl_Image from dbo.ndl_data where ndl_ID ='+@ReferenceID
--Execute the stored procedure to send mail.
EXEC msdb.dbo.sp_send_dbmail

--Pass it the following paramaters.
@recipients=@Recipient,
@body=@Body, 
@subject=@Subject,
@profile_name='NDLProfile',
@body_format ='HTML',
    @execute_query_database='NDL_MX',
@query = @Q,
@attach_query_result_as_file = 1,
@query_attachment_filename = 'image.jpg'

Это работает нормально, но, кажется, возвращает запрос в виде текстового файла, если я прокомментирую последнюю строку.

Как я могу получить вложение в виде файла jpeg????

Спасибо.


person general exception    schedule 13.09.2010    source источник


Ответы (1)


Я не думаю, что это возможно. Как указано в документации для SP_SEND_DBMAIL:

"Когда указан запрос, набор результатов форматируется как встроенный текст. Двоичные данные в результате отправляются в шестнадцатеричном формате." [курсив добавлен]

person Joe Stefanelli    schedule 13.09.2010
comment
Однако я думаю, что вы могли бы реализовать ту же идею, сначала используя BCP для экспорта в файловую систему. Хотя это не так элегантно, как присоединение прямо из varbinary, конечная цель все же может быть достигнута. Я разместил пример кода в качестве концепции здесь: stackoverflow.com/a/12432031/261997 - person RThomas; 15.09.2012