У меня есть некоторые файлы, хранящиеся в таблице SQL Server 2005 в столбце VARBINARY(MAX)
. Мне нужно отправлять эти файлы пользователям по расписанию, и хотя я могу написать службу C # для извлечения и отправки электронной почты sp_send_dbmail
, похоже, идеально подходит для моих целей. Код, который я использую, выглядит следующим образом:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'SQL Mail Profile',
@recipients = 'emailaddress',
@query = 'set nocount on; select CAST(content AS varchar(MAX)) from files where fileid=''xxx''' ,
@subject = 'Random File',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'random file.pdf',
@query_result_no_padding = 1,
@query_result_header = 0,
@query_no_truncate = 1;
Когда я использую запрос напрямую, я получаю текстовое представление файла PDF, но когда я использую код выше, я получаю усеченную версию файла (всегда 792 байта). Казалось бы, это предполагает, что где-то есть настройка, которая управляет этим, но хотя я могу найти настройки, которые управляют размером документа, они намного больше, чем файл, который я пытаюсь отправить по почте!
Кто-нибудь видел это раньше, или есть идеи, где искать?