WEB开发网
开发学院数据库MSSQL Server SQL Server BI Step by Step SSIS 5 - 通过Email发... 阅读

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

 2010-01-01 15:41:35 来源:WEB开发网   
核心提示:忙了一段,终于有时间来完成这一系列了,SQL Server BI Step by Step SSIS 5 - 通过Email发送查询结果,sql server 2008正式版已经发布了,接下来的系列都将基于sql server 2008+vs.net 2008开发,用来存放生成的html内容,同时也新建一个文件连接,引

忙了一段,终于有时间来完成这一系列了。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数据库。现在你的连接管理器有如下连接:

1 2 3 4  下一页

Tags:SQL Server BI

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接