SQL查询出的结果用邮箱形式发送给指定邮箱报错

老杨_sz 2014-01-14 11:52:51


已以用户 ...... 的身份执行。 Unspecified error occurred on SQL Server. Connection may have been terminated by the server. [SQLSTATE HY000] (错误 0) Error formatting query, probably invalid parameters [SQLSTATE 42000] (错误 22050). 该步骤失败。

...全文
632 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2014-01-15
  • 打赏
  • 举报
回复
那证明不是你的代码问题,要么是数据出现了异常,要么你的发送邮件的帐号出问题,甚至配置文件Profiler被人改过、服务器、邮件端口等等,可能性有点多哦
老杨_sz 2014-01-15
  • 打赏
  • 举报
回复
引用 10 楼 DBA_Huangzj 的回复:
这个才是
EXEC msdb.dbo.sp_send_dbmail
      @profile_name = 'Adventure Works Administrator',
      @recipients = 'danw@Adventure-Works.com',
      @query = 'SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
                    WHERE DueDate > ''2004-04-30''
                    AND  DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
      @subject = 'Work Order Count',
      @attach_query_result_as_file = 1 ;
  
在我实际数据库里,改了@query语句和发件人、收件人,报错。之前都正常,就是这两天出现的故障,还没找到原因。
發糞塗牆 2014-01-15
  • 打赏
  • 举报
回复
这个才是
EXEC msdb.dbo.sp_send_dbmail
      @profile_name = 'Adventure Works Administrator',
      @recipients = 'danw@Adventure-Works.com',
      @query = 'SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
                    WHERE DueDate > ''2004-04-30''
                    AND  DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
      @subject = 'Work Order Count',
      @attach_query_result_as_file = 1 ;
  
發糞塗牆 2014-01-15
  • 打赏
  • 举报
回复
联机丛书的例子可以的
 
  EXEC msdb.dbo.sp_send_dbmail @recipients='danw@Adventure-Works.com',
      @subject = 'Work Order List',
      @body = @tableHTML,
      @body_format = 'HTML' ;
老杨_sz 2014-01-15
  • 打赏
  • 举报
回复
引用 6 楼 DBA_Huangzj 的回复:
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'job', @recipients = 'job@rr.com', @query = 'SELECT * FROM [库名].[架构名,默认是dbo].AA where a=''001''' , @subject = 'Work Order Count', @attach_query_result_as_file = 1 加上红字部分试试
使用如下语句可以正常执行并发送邮件:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'Adventure Works Administrator',
    @recipients = 'danw@Adventure-Works.com',
    @body = 'The stored procedure finished successfully.',
    @subject = 'Automated Success Message' ;
老杨_sz 2014-01-15
  • 打赏
  • 举报
回复
引用 6 楼 DBA_Huangzj 的回复:
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'job', @recipients = 'job@rr.com', @query = 'SELECT * FROM [库名].[架构名,默认是dbo].AA where a=''001''' , @subject = 'Work Order Count', @attach_query_result_as_file = 1 加上红字部分试试
还是同样的错误?如果不使用@query可以正常发送邮件
發糞塗牆 2014-01-15
  • 打赏
  • 举报
回复
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'job', @recipients = 'job@rr.com', @query = 'SELECT * FROM [库名].[架构名,默认是dbo].AA where a=''001''' , @subject = 'Work Order Count', @attach_query_result_as_file = 1 加上红字部分试试
老杨_sz 2014-01-15
  • 打赏
  • 举报
回复
引用 2 楼 dotnetstudio 的回复:
建议先看看查询结果是否在执行的时候会有错,投送的目的邮箱地址是否能正常接收邮件
执行的时候出错:

消息 22050,级别 16,状态 1,第 0 行
Error formatting query, probably invalid parameters
消息 0,级别 20,状态 0,第 0 行
当前命令发生了严重错误。应放弃任何可能产生的结果。
老杨_sz 2014-01-15
  • 打赏
  • 举报
回复
引用 1 楼 yupeigu 的回复:
你的发送邮件的语句,能贴出来不

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'job',
    @recipients = 'job@rr.com',
    @query = 'SELECT * FROM AA where a=''001''' ,
    @subject = 'Work Order Count',
    @attach_query_result_as_file = 1
老杨_sz 2014-01-15
  • 打赏
  • 举报
回复

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'job',
    @recipients = 'job@rr.com',
    @query = 'SELECT * FROM AA where a=''001''' ,
    @subject = 'Work Order Count',
    @attach_query_result_as_file = 1
LongRui888 2014-01-14
  • 打赏
  • 举报
回复
你的发送邮件的语句,能贴出来不
KeepSayingNo 2014-01-14
  • 打赏
  • 举报
回复
建议先看看查询结果是否在执行的时候会有错,投送的目的邮箱地址是否能正常接收邮件

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧