Как использовать sp_send_dbmail для отправки содержимого столбца VARBINARY?

У меня есть некоторые файлы, хранящиеся в таблице 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 байта). Казалось бы, это предполагает, что где-то есть настройка, которая контролирует это, но хотя я могу найти настройки, которые контролируют размер документа, они намного больше, чем файл, который я пытаюсь отправить по почте!

Кто-нибудь видел это раньше, или есть идеи, где искать?

1 ответ

Следующий учебник может затронуть то, что вы пропустили: http://www.mssqltips.com/tip.asp?tip=1438

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