【发布时间】:2019-03-19 13:08:49
【问题描述】:
我需要通过电子邮件发送的 sql 查询结果为可读形式。对 html 的更改将允许在表中创建结果。我需要帮助在下面的代码中实现 html。
USE msdb
go
SET QUOTED_IDENTIFIER OFF
SET ANSI_NULLS ON
IF EXISTS (select Kod, Nazwa from DATABASE.dbo.Towar where Kod NOT LIKE '%?%' and AsId IN (205, 304, 289, 321, 306, 217, 261) and Aktywny = 1)
BEGIN
EXEC sp_send_dbmail @profile_name='PROFILE',
@recipients='myadres@email.com',
@query_result_header=0,
@attach_query_result_as_file=0,
@query="select Kod, Nazwa from DATABASE.dbo.Towar where Kod NOT LIKE '%?%' and AsId IN (205, 304, 289, 321, 306, 217, 261) and Aktywny=1 ORDER BY Kod",
@body_format='text',
@subject='warning';
END;
GO
'MgSam'帖子Convert a SQL query result table to an HTML table for email中包含的示例实际上解决了转换为html并创建表的问题。但是,我不知道如何实现“if”条件。
根据 MgSam 指南 - 以下代码有效 - 但如果查询未返回数据 - 将发送电子邮件。
SET QUOTED_IDENTIFIER OFF
SET ANSI_NULLS ON
DECLARE @html nvarchar(MAX);
EXEC spQueryToHtmlTable @html = @html OUTPUT, @query = "select Kod, Nazwa from DATABASE.dbo.Towar where Kod NOT LIKE '%?%' and AsId IN (205, 304, 289, 321, 306, 217, 261) and Aktywny = 1", @orderBy = N'ORDER BY Kod';
EXEC msdb.dbo.sp_send_dbmail
@profile_name='PROFILE',
@recipients='my@email.com',
@subject = 'WARNING',
@body = @html,
@body_format = 'HTML',
@query_no_truncate = 1,
@attach_query_result_as_file = 0;
【问题讨论】:
标签: html sql sp-send-dbmail