sql - 带有二进制附件问题的 sp_send_dbmail

标签 sql sql-server-2008 sp-send-dbmail

我正在尝试使用 sp_send_dbmail 发送附件。 附件存储在表的 varbinary(MAX) 列中。这是我的查询:

EXEC msdb.dbo.sp_send_dbmail 
        @recipients='mick.walker@somewhere.com',
        @subject = 'Test Attachment',
        @body = 'Test',
        @body_format = 'HTML',
        @profile_name = 'intranetadmin',
        @query = 'Select DocumentData from [myDB].[dbo].[Documents] Where DocumentID = 8',
        @query_result_header = 0,
        @attach_query_result_as_file = 1,
        @query_attachment_filename = 'Test.pdf',
        @exclude_query_output = 1,
        @query_no_truncate = 0;

邮件发送成功,带有pdf附件。但是,在打开附件时,出现错误。我认为文件的大小被截断了,尽管我在查询中明确声明不这样做。

我已经检查了数据库邮件设置中允许的最大邮件大小,目前为 104857600 字节 (100mb),我尝试发送的文件远不及这个大小 - 所以我有点困惑。

最佳答案

我知道这是一个旧话题,但我刚刚遇到了同样的问题。问题是SQL报错,错误信息已保存在附件中。

将附件的名称更改为具有 .txt 扩展名并发送电子邮件。打开.txt文件,查看错误。安全配置可能与此有关。

关于sql - 带有二进制附件问题的 sp_send_dbmail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12950756/

相关文章:

c# - Dapper 带有 sql 查询动态参数

sql-server - 在 SSIS 中选择忽略失败时忽略的行会发生什么?

sql-server-2008 - 加法更新插入

html - 将 SQL 查询结果表转换为用于电子邮件的 HTML 表

c# - 如何让这个 CLR 与 2005 一起工作?

android - 已达到数据库的已编译 sql 语句缓存的最大大小

sql-server - 将列主键和外键 VARCHAR 数据类型更改为 INT 数据类型

sql - 为什么在使用数据库邮件时出现以下错误 -> 过程 sysmail_verify_profile_sp,配置文件名称无效?

sql - 如何在 sql server 邮件中包含登录信息?

mysql - 如何从学生类(class)关联表中选择给定学生的同学?