- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 sp_send_dbmail
发送电子邮件。我需要它将一个查询作为附件发送,另一个查询作为电子邮件正文的一部分发送。问题是 sp_send_dbmail
只有一个 @query 参数,而且我看不到任何添加另一个参数的方法。
有没有办法a)添加第二个查询(附加所有参数)或b)将查询执行到变量中,然后将其添加到我的电子邮件正文中?
我使用的是 sql-server 2005。
TIA!
最佳答案
使用存储过程 msdb.dbo.sp_send_dbmail
的 @query
参数作为附件,并将 @body
参数与变量一起使用包含其他查询的结果。
下面的示例代码从 SQL Server 作业步骤历史记录中创建一个字符串,其中包含用于使用存储过程 msdb.dbo.sp_send_dbmail
发送电子邮件的 HTML 表元素。您应该能够根据您的目的进行调整。
DECLARE @cat varchar(MAX),
@email_id int
SELECT @cat = COALESCE(@cat + '', '')
+ '<tr><td>'
+ j.[name] + '</td><td>'
+ CAST(js.step_id AS varchar) + '</td><td>'
+ js.step_name + '</td><td>'
+ CONVERT(char(23), jsl.date_created, 121) + '</td><td>'
+ jsl.[log] + '</td></tr>'
FROM msdb.dbo.sysjobstepslogs jsl
JOIN msdb.dbo.sysjobsteps js ON jsl.step_uid = js.step_uid
JOIN msdb.dbo.sysjobs j ON js.job_id = j.job_id
SET @cat = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<style type="text/css">
td {
border: 1pt dotted #ddd;
}
#log_text {
width: 20em;
}
</style>
</head>
<body>
<table>
<colgroup>
<col />
<col />
<col />
<col />
<col id="log_text" />
</colgroup>
<thead>
<tr>
<th>Job</th><th>Step</th><th>Step name</th><th>Log created</th><th>Log text</th></tr>
</thead>
<tbody>
' + @cat + '
</tbody>
</table>
</body>
</html>'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'SQLServerDatabaseMailProfile',
@recipients = 'person@example.com',
@subject = 'SQL Server Database Mail · Job step logs',
@body = @cat,
@body_format = 'HTML',
@mailitem_id = @email_id OUTPUT
关于sql - 如何使用 sp_send_dbmail 发送多个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4808340/
我正在尝试使用 sp_send_dbmail 发送附件。附件存储在表的 varbinary(MAX) 列中。这是我的查询: EXEC msdb.dbo.sp_send_dbmail @
我正在研究一个 SQL 存储过程,它应该发送带有查询结果的附件。 我正在使用 sp_send_dbmail发送电子邮件。 在我想发送的查询中,我将 加入到一个表变量中。当我执行存储过程时,我收到一条错
我在 SQL Server 2008 中使用 sp_send_dbmail 发送查询结果。我将查询移动到一个过程中,并尝试在 sp_send_dbmail 过程中使用该过程,如下所示: EXEC ms
我使用的是 SQL Server 2008 R2。当我执行 sp_send_dbmail 时,我无法更改 DBA 指定的默认地址 FROM_ADDRESS。如果不起作用为什么还有这个参数? 如何指定“
我在此 MSDN 页面上使用类似于示例 C 的内容: http://msdn.microsoft.com/en-us/library/ms190307.aspx DECLARE @tableHTML
我已经写了一个SQL查询。但这给了我一个错误。 DECLARE @Delimiter Char(1) SET @Delimiter = CHAR(9) EXEC MSDB.dbo.sp_Send_DB
我正在尝试使用 sp_send_dbmail 发送电子邮件。我需要它将一个查询作为附件发送,另一个查询作为电子邮件正文的一部分发送。问题是 sp_send_dbmail 只有一个 @query 参数,
我需要发送带有文件附件的电子邮件。附件必须来自图像类型数据字段。在查询窗口和存储过程中运行以下代码时,不会发送电子邮件。在查询窗口中,它只显示“命令成功完成”,但没有电子邮件。 EXEC msdb.
我有一个每天晚上运行的存储过程,它应该将查询结果发送给多个收件人。然而,在大多数情况下,它最终会在一分钟后发送一封重复的电子邮件。我使用的代码如下(所有电子邮件和数据库引用均已更改): EXEC ms
正如标题所说,我正在尝试制作一个存储过程,用于将电子邮件发送到数据库中存储的地址,通常包括多个收件人。我已经尝试了几种方法来解决这个问题,但我认为我正在碰壁,我会很感激任何人提供的任何意见。我遇到的主
有没有办法为我的数据库中的用户提供访问权限以执行 msdb.dbo.sp_send_dbmail 无需将它们添加到 MSDB 数据库和 DatabaseMailUserRole? 我试过这个: ALT
我在 SQL2005 中使用 sp_send_dbmail 发送带有附件中结果的电子邮件。发送附件时,它是 UCS-2 编码的,我希望它是 ANSI 或 UTF-8。 这是 SQL EXEC msdb
我们使用 sp_send_dbmail 来通知我们某些问题,有时我们会在电子邮件中附加文件。有时我们会收到错误 32(文件正在使用)错误。在这种情况下,我已经将一些代码放在一起发送没有附件的电子邮件,
我正在使用 SQL Server 的 sp_send_dbmail 存储过程通过数据库发送邮件。 但是当我执行该程序时,它会关闭数据库邮件程序。我尝试通过 sysmail_start_sp 再次启动它
我在 sp_send_dbmail 中使用 @query 边界发送一封包含警告列表的电子邮件(警告由 @query 边界返回)。 @query 边界在电子邮件中以文本形式列出。从 @query 边界返
我正在使用 msdb.dbo.sp_send_dbmail 发送电子邮件。有时电子邮件不发送。我有失败的电子邮件列表。 SELECT TOP 10 * from msdb.dbo.sysmail_ev
我收到此错误: Msg 229, Level 14, State 5, Procedure sp_send_dbmail, Line 1 The EXECUTE permission was deni
我正在尝试在 SQL Server 2008 中创建一个存储过程,用于发送插入到出站表中的电子邮件。我正在使用 sp_send_dbmail。它使用游标遍历出站表。我还想删除包含我已发送的电子邮件的记
我正在使用 msdb.dbo.sp_send_dbmail 发送电子邮件。有时电子邮件不发送。我有失败的电子邮件列表。 SELECT TOP 10 * from msdb.dbo.sysmail_ev
我正在寻找一种方法来检查使用 sp_send_dbmail 排队的特定电子邮件是否最终从我们的 Exchange 服务器成功发送。我查看了系统表 msdb.dbo.sysmail_mailitems
我是一名优秀的程序员,十分优秀!