SSIS遍歷記錄傳送郵件
剛剛在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'小樑','purana@126.com')
insert into EMailTest values(2,N'小輝','myfend@hotmail.com')
二.開啟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為你的資料庫郵件的”配置檔名”
轉到”引數對映”頁面下.新增一個引數,變數名稱” 使用者::Email”,方向為”Input”,資料型別為”VARCHAR”,引數名稱為”0”,引數大小為”20”,如圖.
此處設定完成.確定返回..
全部設定都完成了.執行看看結果.
執行前
執行後:
注意:由於我傳送郵件使用了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'小樑','purana@126.com')
insert into EMailTest values(2,N'小輝','myfend@hotmail.com')
二.開啟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為你的資料庫郵件的”配置檔名”
轉到”引數對映”頁面下.新增一個引數,變數名稱” 使用者::Email”,方向為”Input”,資料型別為”VARCHAR”,引數名稱為”0”,引數大小為”20”,如圖.
此處設定完成.確定返回..
全部設定都完成了.執行看看結果.
執行前
執行後:
相關文章
- AOP記錄異常郵件傳送記錄
- C#原生郵件傳送+傳送日誌記錄C#
- 利用SPF記錄缺失傳送偽造郵件
- 郵件傳送
- 傳送郵件
- JSP筆記-傳送郵件JS筆記
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- Laravel 傳送郵件Laravel
- PHP傳送郵件PHP
- Django——郵件傳送Django
- java郵件傳送Java
- Laravel傳送郵件Laravel
- gmail傳送郵件AI
- Oracle郵件傳送Oracle
- java傳送郵件Java
- Powershell郵件傳送
- thinkphp 郵件傳送PHP
- centos 傳送郵件CentOS
- phpcms傳送郵件PHP
- 郵件的傳送
- 新增了SPF記錄後仍然能夠冒名傳送郵件
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- golang傳送郵件(qq郵箱)Golang
- 郵件傳送API整理API
- php windows 傳送郵件PHPWindows
- 定時傳送郵件
- thinkjs 傳送郵件JS
- 使用phpmailer傳送郵件PHPAI
- Ubuntu的郵件傳送Ubuntu
- python傳送郵件Python
- nodejs 傳送郵件NodeJS
- 傳送郵件那些事
- javamail郵件傳送例子JavaAI
- 使用JavaMail傳送郵件JavaAI
- 使用nodemailer傳送郵件AI
- javamail傳送郵件(轉)JavaAI
- Jenkins實現自動化郵件傳送踩坑記錄Jenkins
- Django筆記三十八之傳送郵件Django筆記