刚刚在technet上看了SSIS在执行 SQL 任务中使用结果集的介绍(原文地址: http://technet.microsoft.com/zh-cn/office/cc280492.aspx).就弄了这个东西出来.循环表中所有记录.并发送邮件. 注意:由于我发送邮件使用了msdb..sp_send_dbmail存储过程发送Database Mail.所以需要在SQLServer Management Studio上配置数据库邮件.(配置数据库邮件过程此处不详说了.可以参考微软的网站,或http://hi.baidu.com/itpro/blog/item/06a2db11f1263c15b9127bd2.html)一.在SQLServer上创建测试数据:create database MyTest
go
use MyTest
go
create table EMailTest(id int,name nvarchar(20),email varchar(256))
insert into EMailTest values(1,N'小梁','[email protected]')
insert into EMailTest values(2,N'小辉','[email protected]') 二.打开SQL Server Business Intelligence Development Studio.新建一个SSIS项目.
三.在”连接管理器”中新建一个”Ole Db连接”,服务器上填上你的SQLServer实例名(我这里是用myfend\myfend,以下说到的连接管理器均为此Ole Db连接管理器).数据库中选择刚刚创建的MyTest库.确定返回. 三.在”控制流”上添加一个”执行SQL任务”组件.并双击进入”执行SQL任务编辑器”.在”选项”页面上.Connection上选择刚刚建立的连接管理器.SQLSourceType为”直接输入”,SQLStatement处输入select * from EMailTest ,在结果集”ResultSet”中选择”完整结果集”切换到”结果集”页面上.添加一个变量,名称为adResultset,值类型选择Object,确定返回将结果名称设置为0.此处已设置完,确定返回. 四.在”控制流”上添加一个”ForEach循环容器”,并将刚刚的”执行SQL任务”组件的约束流拖到此”ForEach循环容器”上.
双击”ForEach循环容器”,进入”Foreach循环容器编辑器”,并转到”集合”页面上.设置Enumerator为”Foreach ADO枚举器”,ADO对象源变量选择”用户::adResultSet”(即刚刚的”执行SQL任务”中返回的结果集的变量名)然后切换到”变量映射”页面上.新建三个变量,第一个变量名称为”ID”,值类型为”int32”,索引设置为0,第二个变量名称为”Name”,值类型为”String”,索引设置为1,第三个变量名称为”EMail”,值类型为”String”,索引设置为2.如图此处设置完毕,确定返回.
五.在”Foreach循环容器”上添加一个”执行SQL任务”组件,将双击进入”执行SQL任务编辑器”.在常规页面下.设置Connection为”myfend\myfend.Test”连接管理器,SQLSourceType设置为”直接输入”,SQLStatement处输入
exec msdb.dbo.sp_send_dbmail
@profile_name='victoria',
@recipients=?,
@subject='这是测试邮件',
@body='这是测试邮件呀,能收吗?'注意,这里的@profile_name为你的数据库邮件的”配置文件名”
http://p.blog.csdn.net/images/p_blog_csdn_net/liangCK/460529/o_8.jpg
转到”参数映射”页面下.添加一个参数,变量名称” 用户::Email”,方向为”Input”,数据类型为”VARCHAR”,参数名称为”0”,参数大小为”20”,如图.此处设置完成.确定返回..全部设置都完成了.运行看看结果.
运行前运行后:
go
use MyTest
go
create table EMailTest(id int,name nvarchar(20),email varchar(256))
insert into EMailTest values(1,N'小梁','[email protected]')
insert into EMailTest values(2,N'小辉','[email protected]') 二.打开SQL Server Business Intelligence Development Studio.新建一个SSIS项目.
三.在”连接管理器”中新建一个”Ole Db连接”,服务器上填上你的SQLServer实例名(我这里是用myfend\myfend,以下说到的连接管理器均为此Ole Db连接管理器).数据库中选择刚刚创建的MyTest库.确定返回. 三.在”控制流”上添加一个”执行SQL任务”组件.并双击进入”执行SQL任务编辑器”.在”选项”页面上.Connection上选择刚刚建立的连接管理器.SQLSourceType为”直接输入”,SQLStatement处输入select * from EMailTest ,在结果集”ResultSet”中选择”完整结果集”切换到”结果集”页面上.添加一个变量,名称为adResultset,值类型选择Object,确定返回将结果名称设置为0.此处已设置完,确定返回. 四.在”控制流”上添加一个”ForEach循环容器”,并将刚刚的”执行SQL任务”组件的约束流拖到此”ForEach循环容器”上.
双击”ForEach循环容器”,进入”Foreach循环容器编辑器”,并转到”集合”页面上.设置Enumerator为”Foreach ADO枚举器”,ADO对象源变量选择”用户::adResultSet”(即刚刚的”执行SQL任务”中返回的结果集的变量名)然后切换到”变量映射”页面上.新建三个变量,第一个变量名称为”ID”,值类型为”int32”,索引设置为0,第二个变量名称为”Name”,值类型为”String”,索引设置为1,第三个变量名称为”EMail”,值类型为”String”,索引设置为2.如图此处设置完毕,确定返回.
五.在”Foreach循环容器”上添加一个”执行SQL任务”组件,将双击进入”执行SQL任务编辑器”.在常规页面下.设置Connection为”myfend\myfend.Test”连接管理器,SQLSourceType设置为”直接输入”,SQLStatement处输入
exec msdb.dbo.sp_send_dbmail
@profile_name='victoria',
@recipients=?,
@subject='这是测试邮件',
@body='这是测试邮件呀,能收吗?'注意,这里的@profile_name为你的数据库邮件的”配置文件名”
http://p.blog.csdn.net/images/p_blog_csdn_net/liangCK/460529/o_8.jpg
转到”参数映射”页面下.添加一个参数,变量名称” 用户::Email”,方向为”Input”,数据类型为”VARCHAR”,参数名称为”0”,参数大小为”20”,如图.此处设置完成.确定返回..全部设置都完成了.运行看看结果.
运行前运行后:
解决方案 »
- 怎么建不了临时表
- 如何编写存储过程来进行用户登陆验证及用户操作验证
- 两张完全一样的表a和b, 在a上建一个触发器,使每往a中插一条记录,就向b中也插一条记录.触发器该怎么写?
- 对有三层关系的几个表插入数据的触发器如何写?
- 我有些不理解的问题,请大家帮忙!
- 这个update为什么报错?该如何改?
- 更改Administrator密码导致的SQLServer服务不能正常启动的问题!
- sql2000 一個job疑難
- 请教高手, 如何删除
- 高级问题:如何在一个触发器或者存储过程中得知自己是否处在一个事务之中?
- 谁用简单的例子给我讲一下CROSS APPLY 和outer apply 的区别啊
- 求助: sp_oacreate 和sp_oadestroy 让我很困惑
楼主找来发给大家吧:)
您只能输入 8000 个字符禁用UBB 内容存入剪贴板 回帖是一种美德!传说每天回帖即可获得 10 分可用分!
您只能输入 8000 个字符禁用UBB 内容存入剪贴板 回帖是一种美德!传说每天回帖即可获得 10 分可用分!
您只能输入 8000 个字符禁用UBB 内容存入剪贴板 回帖是一种美德!传说每天回帖即可获得 10 分可用分!
您只能输入 8000 个字符禁用UBB 内容存入剪贴板 回帖是一种美德!传说每天回帖即可获得 10 分可用分!
北京国展大型人才招聘会(9.27)
http://www.315job.com/YaoQingHan/20080927.html
浪曦ASP.NET企业实战系列 http://down1.langsin.com/001.rar
浪曦NUnit详解视频 http://down1.langsin.com/002.rar
浪曦Struts 2应用开发详解 http://www.verycd.com/topics/210454
VIP视频:
浪曦Java常见笔试、面试题目深度剖析 http://down1.langsin.com/003.rar
浪曦J2EE测试实用指南http://down1.langsin.com/005.rar
浪曦Lucene视频教程 http://down1.langsin.com/006.rar
浪曦电脑维护项目 http://down1.langsin.com/007.rar
培训视频:
浪曦ExtJS视频之Grid控件 http://down1.langsin.com/008.rar
业务QQ:1050429531