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






3.21/5 (4投票s)
在本文中,您将学习如何从表中选择数据,并使用 SQL Server 2008 将该数据发送到电子邮件。
本教程分为三个部分,如下所示:
- 配置电子邮件配置文件并使用 SQL Server 发送测试电子邮件
- 选择并在邮件中发送数据
- 安排 SQL Server 每日发送邮件
引言
本文解释了如何从表中选择数据,并将该数据绑定到电子邮件,然后使用 SQL Server 2008 发送邮件。
步骤 1
使用正确的用户名和密码登录 SQL Server 2008。
第二步
单击数据库,然后单击 新建查询。
在此示例中,我有一个名为 tblstudent 的 student 表,以及该表中的一些测试数据。
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 表中选择数据,并将该数据绑定到电子邮件。邮件中应包含以下表格数据:

步骤 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'  
输出
邮件已排队。检查电子邮件,它将显示如下:

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

