加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server BI Step by Step SSIS 5 - 通过Email发送查询结果

发布时间:2016-01-19 09:09:41 所属栏目:MsSql教程 来源:网络整理
导读:忙了一段,终于有时间来完成这一系列了。sql server 2008正式版已经发布了,接下来的系列都将基于sql server 2008+vs.net 2008开发。 引言 在一个B2B项目中遇到
忙了一段,终于有时间来完成这一系列了。sql server 2008正式版已经发布了,接下来的系列都将基于sql server 2008+vs.net 2008开发。

引言

在一个B2B项目中遇到这样的一个情况,每天老板都想看到所有的新的订单信息,而这个老板很懒,不想登录系统后台,而是想通过查看邮件的方式。当然实现方式很多,这里我们介绍一个怎么使用SSIS包来实现这样的一个功能。使用SQL XML Query查询出XML结果数据,然后使用Xsl模板将xml数据转换成html,再将html内容发送邮件。

创建SSIS包

1.和vs.net 20005中一样的方式,创建一个Integration Service项目,并且包的名称修改为 SendMailPackage

2.在你的本地硬盘上新建一个目录,比如F:SSIS_ExampleSendMail用来存放查询语句和Xsl文 件.

3.在刚才的目录下新建一个QueryOrder.sql文件,填充如下内容,在连接管理器中新建一个文件连接 ,选择新建的sql文件:

QueryOrder.sql

/*
  实际使用时将@v_CurrentDate换成当时日期
*/


declare  @v_CurrentDate  datetime
set  @v_CurrentDate =  '2003-07-17'
 /*set  @v_CurrentDate = GETDATE()*/


if  exists  (select 1
    from  Sales.SalesOrderHeader
    where  OrderDate =  @v_CurrentDate)


begin


  select  top 10 oh.OrderDate,
    (select  round(sum(TotalDue), 2)
    from  Sales.SalesOrderHeader
    where  OrderDate =  @v_CurrentDate) as DayTotal,
    p.ProductID, p.Name,
    round(sum(oh.TotalDue), 2) as ProductSubtotal
  from  AdventureWorks.Sales.SalesOrderHeader  oh
  join  AdventureWorks.Sales.SalesOrderDetail  od
  on  od.SalesOrderID =  oh.SalesOrderId
  join  AdventureWorks.Production.Product  p
  on  p.ProductID =    od.ProductId
  where  oh.OrderDate =  @v_CurrentDate
  group
  by  oh.OrderDate, p.ProductID, p.Name
  order
  by  5 desc, p.ProductID asc
  for xml auto, elements, type, root('Order')

end

else  select cast('<NoRecords>No sales records available for this  date.</NoRecords>' as xml)

注:  在这里我们使用一个固定的日期,实际中你可以使用系统方法GETDATE()或者DATEDIFF()来查 询你需要的日期。

4.同样在目录下面新建一个Orders.xsl文件,由于内容较多,请直接下载附件中文件,这里也不在详 细介绍xsl的具体内容。 同样也新建一个文件连接。

5.在目录下新建一个Orders.htm文件,用来存放生成的html内容,同时也新建一个文件连接。

6.新建一个Ado.net 连接你的AdventureWorks数据库。现在你的连接管理器有如下连接:

SQL Server BI Step by Step SSIS 5 - 通过Email发送查询结果

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读