问题标签 [sp-send-dbmail]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
265762 浏览

sql - 如何从 SQL Server 发送电子邮件?

如何使用 T-SQL 发送电子邮件但电子邮件地址存储在表中?我想遍历表格并能够发送电子邮件。到目前为止,我找不到这样做的好例子。

0 投票
1 回答
1422 浏览

sql-server - SQL Server:sp_send_dbmail 在调用存储过程时从不将电子邮件排队

我有一个 SQL 作业,它设置为运行sp_send_dbmail并将存储过程的结果作为 csv 文件附加到电子邮件中。这项工作一直持续到一个半星期前。

完全披露:我在那个时候对存储过程进行了更改。存储过程以前查看一个链接服务器中的表,现在查看另一个链接服务器中的表。

我能够从工作中取出代码并在查询窗口中成功运行它,我还能够在没有sp_send_dbmail调用的情况下在查询窗口中成功执行存储过程。此外,作业按计划执行并报告成功,并且我在作业历史记录中没有看到任何错误消息。我在作业中包含了运行该过程并在下面发送邮件的代码:

自创建作业以来,我没有更改任何此代码,我只是在存储过程中进行了更改,以便它查看不同的链接数据源。任何形式的帮助表示赞赏。

编辑:我还检查了sysmail_mailitems表格,每次手动运行作业时都没有发现当天排队的消息,想确保我包含了该详细信息。

0 投票
0 回答
116 浏览

sql-server - SQL Server 中的字符串构建

根据Microsoft 文档 sp_send_dbmail,列表必须是分号分隔的。但是,在我的许多应用程序中,我无法保证此列表是干净的。我需要一种强大的方法来确保语法上有效的电子邮件列表,这样我的应用程序就不会中断。

我一直在研究XML PATH,STUFF和其他方法,但语法非常混乱。有没有人在他们的技巧包中有一个方便的方法(请不要存储过程或函数,我想要一个开箱即用的解决方案)?

从概念上讲,我认为最好将 CSV 列表分成一个临时表,分别处理每封电子邮件,然后使用分号分隔符重新组合列表。我怀疑有更好的方法。

同样,如果可能的话,我想要一个开箱即用的解决方案。:)

0 投票
1 回答
859 浏览

sql-server - 执行 SQL 任务电子邮件

我从“执行 SQL 任务”发送电子邮件时遇到问题

失败并出现以下错误:

“多步 OLE DB 操作生成错误。检查每个 OLE DB 状态值(如果可用)。没有完成任何工作。”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。

这是 SQL 语句-

参数映射:
变量名 User::Email_DB
参数名 =@body

当我直接在查询中包含 @body 参数的文本而不是使用参数映射时,它工作正常。帮助表示赞赏。

0 投票
2 回答
5805 浏览

sp-send-dbmail - sp_send_dbmail:避免(受影响的 n 行)

调用 sp_send_dbmail:成功执行,但最后会出现一个额外的行,其中包含受查询影响的行。

有什么办法可以避免这条线?

谢谢!!!

0 投票
8 回答
59558 浏览

sql-server - 从作业执行的 sp_send_dbmail 失败,查询结果作为文件附加

我遇到了以下问题:当尝试发送带有查询结果作为文件附加的电子邮件时,通过执行普通查询使用sp_send_dbmail一切似乎工作正常。

但是如果将相同的代码添加到 JobStep 并运行作业,它会失败。

工作经历中的错误说

错误格式化查询,可能是无效参数 [SQLSTATE 42000](错误 22050)。步骤失败。

但是当我注释掉引用文件附加的参数时,它又开始正常工作了。

有什么建议么?

0 投票
8 回答
34735 浏览

sql - 使用 SP_SEND_DBMAIL 向所有收件人发送重复电子邮件的存储过程

我有一个每晚运行的存储过程,它应该将查询结果发送给多个收件人。然而,在大多数日子里,它最终会在一分钟后发送一封重复的电子邮件。我正在使用的代码如下(所有电子邮件和数据库参考都已更改):

对此的任何帮助将不胜感激。

0 投票
1 回答
229 浏览

tsql - 如何在发送 sp_send_dbmail (Transact-SQL) 时删除日期中的字母“T”

我创建了一个 sp_send_dbmail,它从我的数据库中获取查询信息,但现在当它返回日期时,需要空格的地方会显示一个“T”。

我试图用空格替换“T”Set @Body = Replace(@Body, '<TRRow>T</TRRow>', '') 但没有任何反应

请帮忙 !

输出

0 投票
1 回答
4671 浏览

sql - 如何更改 sp_send_dbmail 查询的附件编码?

sp_send_dbmail用来生成和发送提供给其他程序的文件。该程序消化“ANSI/ASCII”和“ISO-8859-1”编码。但我不能sp_send_dbmail做一个。

过程调用如下所示

因此,附件是根据传递的查询结果创建的。但是由于某种原因实际附加到邮件的结果文件是使用 UCS2 Little Endian 编码的。有没有办法改变它?

0 投票
2 回答
7379 浏览

try-catch - 无法从 sp_send_dbmail 捕获错误

我们使用 sp_send_dbmail 来通知我们某些问题,有时我们会在电子邮件中附加文件。有时我们会收到错误 32(正在使用的文件)错误。在这种情况下,我已经将一些代码放在一起发送没有附件的电子邮件,但无论我做什么,我都无法捕捉到错误并忽略它。

我希望能够处理或忽略来自 sp_send_dbmail 的任何错误,因为这会导致生产中的作业失败。

我尝试实现本文http://www.sqlusa.com/articles2008/trycatch/中描述的技术,如下所示:

这是返回的内容:

消息 22051,级别 16,状态 1,第 0 行无法打开附件文件“C:\temp\stage\test.txt”。执行 API 'CreateFile' 失败,错误号为 32。@@ERROR: 0 Retcode ONE: 1 Mail (Id: 11) queued。转码:0

电子邮件确实已发送,但 Msg 22051 从未被捕获。这就是导致生产失败的原因。

这可能是它的方式:http ://connect.microsoft.com/SQLServer/feedback/details/687544/2008-sp1-engine-sp-send-dbmail-does-not-fall-into-a-catch-正确阻止

但是,如果我缺少某些东西并且有办法从 sp_send_dbmail 中获取错误,我肯定想知道如何。

谢谢,

射线