如何使用sp_send_dbmail发送VARBINARY列的内容?

时间:2008-10-14 10:48:04

标签: sql-server-2005 sp-send-dbmail

我有一些文件存储在VARBINARY(MAX)列的SQL Server 2005表中。我需要按计划将这些文件通过电子邮件发送给用户,虽然我可以编写一个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 个答案:

答案 0 :(得分:1)

以下教程可能涉及您错过的内容:http://www.mssqltips.com/tip.asp?tip=1438