SQL Server sp_send_dbmail Bilddateianhang
-
02-10-2019 - |
Frage
Ich verwende einen Trigger für eine Tabelle, die eine E-Mail mit sp_send_dbmail zu senden.
Ich möchte in der E-Mail von einem Bildtyp einen Dateianhang enthalten.
Die Rohdaten für die jpeg in der ndl_Image Spalte gespeichert werden, die vom Typ binär ist.
Ich habe den folgenden Code: -
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'
Dies funktioniert ok, aber scheint die Abfrage als Textdatei zurück, wenn ich die letzte Zeile aus kommentieren.
Wie kann ich die Anlage als JPEG-Datei ????
Danke.
Lösung
Ich glaube nicht, dies möglich ist. Wie in der Dokumentation angegeben für sp_send_dbmail :
"Wenn eine Abfrage angegeben wird, ist das Ergebnis Satz wird als Inline-Text formatiert. Binärdaten im Ergebnis wird gesendet, in Hexadezimal-Format. "[Hervorhebung hinzugefügt]