65.9K
CodeProject 正在变化。 阅读更多。
Home

如何使用 SQL Server 发送邮件:第二部分

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.21/5 (4投票s)

2016年3月27日

CPOL

1分钟阅读

viewsIcon

11643

在本文中,您将学习如何从表中选择数据,并使用 SQL Server 2008 将该数据发送到电子邮件。

本教程分为三个部分,如下所示:

  1. 配置电子邮件配置文件并使用 SQL Server 发送测试电子邮件
  2. 选择并在邮件中发送数据
  3. 安排 SQL Server 每日发送邮件

引言

本文解释了如何从表中选择数据,并将该数据绑定到电子邮件,然后使用 SQL Server 2008 发送邮件。

步骤 1

使用正确的用户名和密码登录 SQL Server 2008。

第二步

单击数据库,然后单击 新建查询

在此示例中,我有一个名为 tblstudentstudent 表,以及该表中的一些测试数据。

CREATE TABLE [dbo].[tblStudents](  
    [Id] [int] IDENTITY(1,1) NOT NULL,  
    [StudentName] [varchar](50) NOT NULL,  
    [RollNo] [varchar](20) NOT NULL,  
    [Add] [varchar](50) NULL,  
    [MobileNo] [varchar](10) NOT NULL,  
 CONSTRAINT [PK_tblStudents] PRIMARY KEY CLUSTERED   
(  
    [Id] ASC  
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, 

IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON

) ON [PRIMARY]  
) ON [PRIMARY]   
GO  

步骤 3

现在,我将从 student 表中选择数据,并将该数据绑定到电子邮件。邮件中应包含以下表格数据:

student information

步骤 4

要设计前面的表格,我们需要以下 HTML 表格结构。

<h3>Students Information</h3>  
        <table border="1">  
            <tr>  
                <th>  
                    Roll No   
                </th>  
                <th>  
                    Student Name  
                </th>  
                <th>  
                    Address  
                </th>  
                <th>  
                    Mobile No</th>  
            </tr>  
            <tr>  
                <td>  
                    1  
                </td>  
                <td>  
                    Manish kumar  
                </td>  
                <td>  
                    Hydrabad</td>  
                <td>  
                    0000000000  
                </td>  
            </tr>  
            <tr>  
                <td>  
                    2  
                </td>  
                <td>  
                    Venkat</td>  
                <td>  
                    Pune</td>  
                <td>  
                    111111111  
                </td>  
            </tr>  
            </table>  

步骤 5

现在编写以下查询,并将该查询绑定到 msdb.dbo.sp_send_dbmail 存储过程。

DECLARE @TabulerData NVARCHAR(MAX)  
DECLARE @TablrBodyData NVARCHAR(MAX)  
SET @TabulerData = CAST(( SELECT [RollNo] AS 'td','',[StudentName] AS 'td','',  
       [Add] AS 'td','', [MobileNo] AS 'td'  
FROM  tblStudents FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))    
  
SET @TablrBodyData ='<html><body><H4>Students Information</H4>  
<table border = 1>   
<tr>  
<th> Roll No </th> <th>  Student Name </th> _
<th> Address </th> <th> Mobile No </th></tr>'      
  
   
SET @TablrBodyData = @TablrBodyData + @TabulerData +'</table></body></html>' 

步骤 6

现在将 @TablrBodyData 绑定到 msdb.dbo.sp_send_dbmail 存储过程的主体。

EXEC msdb.dbo.sp_send_dbmail @profile_name='MyTestMail',  
@recipients='manishki@live.com',   
@subject='My Test Mail Service with student data.',  
@body=@TablrBodyData,   
@body_format ='HTML'  

输出

邮件已排队。检查电子邮件,它将显示如下:

test mail service

摘要

在本演示中,您学习了如何从表中选择数据,并使用 SQL Server 2008 将该数据发送到电子邮件。请提供您对本文的宝贵意见。

© . All rights reserved.