SQL Server存储过程邮件发送以表格方式发送

一、收到邮件显示:示例

SQL Server存储过程邮件发送以表格方式发送_第1张图片

 

二、存储过程代码部分: 

BEGIN

    SET NOCOUNT ON;
    --初始化
    Declare @MailTo nvarchar(max)
    Declare @MailCc nvarchar(max)
    Declare @MailBcc nvarchar(max)
    Declare @MailSubject nvarchar(255)
    Declare @MailBody nvarchar(max)
    Declare @MailFormat nvarchar(20)
    DECLARE @SignCount nvarchar(50)

    --查询表格中异常资料笔数

    SELECT @SignCount=COUNT(1) FROM  表名称  WHERE  筛选条件 

    SET @MailSubject='異常共'+@SignCount+'筆'
    SET @MailFormat='HTML'
    SET @MailTo='[email protected]'    --收件人邮件地址
    SET @MailCc='[email protected]'   --抄送
    SET @MailBcc='[email protected]'  --密送
    SET @MailBody=''    --发送内容

    SET @MailBody =
    N'Dear Sir/Madam:
異常共'+@SignCount+'筆,請及時核對,謝謝!!!

    列表如下:

' +

     --定义邮件表格尺寸大小
    N'

' +     

    --定义列表对应列名称 
    N'

' +    
    N'' +
    N'' +
    N'' +
    N'' +

    --表主体结果
    CAST ( ( SELECT
        td = Empid, '',
        td = EmpCName, '',
        td = [ULColA29-AdjAnlUsePos-Sum], '',
        td = VocaTotalHours, '',
        td = [ULColA29-State], ''
        FROM  表名称  Form   WHERE  筛选条件   FOR XML PATH('tr'), TYPE     --将查询出来结果以HTML语言 td/tr显示出来
        ) AS NVARCHAR(MAX)

       ) +
    N'

工號姓名已用天數實際已用天數異常狀態

以上為系統發送,請勿回復!!!
xx部xx課'

    declare @i int   
  BEGIN
    SET @i=0;


    EXEC msdb.dbo.sp_send_dbmail         --执行SQL邮件发送的一个功能地址

    --对应的邮件主体参数带入发送邮件
    @profile_name='MIS_SMTP_Mail',     --sql郵件設置的配置名稱
    @recipients=@MailTo,  --收件地址
    @copy_recipients=@MailCc,      --抄送地址
    @blind_copy_recipients=@MailBcc,       --密送
    @subject=@MailSubject,           --郵件主題
    @body=@MailBody,               --mail正文內容
    @body_format=@MailFormat        --郵件內容格式

    SET @i=1;
  END

END

你可能感兴趣的:(SQL Server存储过程邮件发送以表格方式发送)