[MSSQL]SQL查询结果转换成HTML并通过邮件预警

上一篇文章讲解到配置数据库邮件实现发送邮件功能。

邮件的内容为HTML格式。
案例:

-- =============================================
-- Author:      <Author,David Gong>
-- Create date: <Create Date,2017-08-20,>
-- Description: <Description,新增采购单无ROHS报告预警,>
-- =============================================
ALTER TRIGGER [dbo].[TR_NOROHS] 
   ON  [dbo].[PURTD]
   AFTER INSERT
AS 
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

DECLARE @tableHTML  NVARCHAR(MAX) ;
if exists(
    SELECT      td = RTRIM(TC001), '',
                    td = RTRIM(TC002), '',
                    td = RTRIM(TD003), '',
                    td = RTRIM(TC004), '',
                    td = RTRIM(MA003), '',
                    td = RTRIM(TD004), '',
                    td = RTRIM(TD005), '',
                    td = RTRIM(TD006), '',
                    td = RTRIM(MV002), ''                        
              from   inserted 
INNER JOIN PURTC on TD001=TC001 AND TD002=TC002
INNER JOIN PURMA ON TC004=MA001
INNER JOIN CMSMV ON TC011=MV001
LEFT JOIN ROSH ON RTRIM(TC004)=Supplier AND  TD004=Item
WHERE ROSH.Item IS NULL
             )
begin
SET @tableHTML =
    N'<H1>无ROHS报告材料清单</H1>' +
    N'<table border="1">' +
    N'<tr><th>单别</th><th>单号</th><th>序号</th><th>供应商编码</th><th>供应商</th>' +
    N'<th>品号</th><th>品名</th><th>规格</th><th>采购人员</th></tr>'+
    CAST ( ( 

    SELECT    td = RTRIM(TC001), '',
                    td = RTRIM(TC002), '',
                    td = RTRIM(TD003), '',
                    td = RTRIM(TC004), '',
                    td = RTRIM(MA003), '',
                    td = RTRIM(TD004), '',
                    td = RTRIM(TD005), '',
                    td = RTRIM(TD006), '',
                    td = RTRIM(MV002), ''                        
              from   inserted 
INNER JOIN PURTC on TD001=TC001 AND TD002=TC002
INNER JOIN PURMA ON TC004=MA001
INNER JOIN CMSMV ON TC011=MV001
LEFT JOIN ROSH ON RTRIM(TC004)=Supplier AND  TD004=Item
WHERE ROSH.Item IS NULL

              FOR XML PATH('tr'), TYPE 
    ) AS NVARCHAR(MAX) ) +
    N'</table>' ;
    --print @tableHTML
EXEC msdb.dbo.sp_send_dbmail 
    @profile_name = 'MailETL',
    @recipients='xx@zettlercn.com',
    @blind_copy_recipients = 'xx@zettlercn.com' ,
    @subject = '新增采购单无ROHS报告预警信息',
    @body = @tableHTML,
    @body_format = 'HTML' ;

 end
    -- Insert statements for trigger here

END

这里写图片描述

感谢小叶的帮助

厦门德仔 CSDN认证博客专家 项目实施 软件开发 数据分析
毕业于南昌大学,英语6级,拥有超过13年的工作经验,数据库工程师(中级),ERP认证工程师,FRCA报表工程师,美国PMP项目管理师,具有项目管理能力,拥有多年项目实施与运维,精通SQL数据库,Asp.net和数据分析管理和开发。曾在台企,港企,美企,民企实施过多个完整ERP,WMS,EHR,OA,BI等项目。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 点我我会动 设计师:上身试试 返回首页
实付 99.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值