SSIS压缩文件并以邮件附件发送

来源:互联网 发布:ds1100k 网络键盘 编辑:程序博客网 时间:2024/06/10 07:57
PS: 1.由于本文使用了msdb..sp_send_dbmail发送邮件.所以应先对数据库邮件进行配置.
  2.在压缩文件时,使用了7-Zip进行压缩,所以请到http://www.7-zip.org/下载该压缩工具,由于该压缩工具基于 GNU LGPL 许可协议,所以可自由使用.下载完.安装到E:/7-Zip/ 由于本文使用的是这个路径,所以可以自行设置路径.并在以下使用到7z.exe时指定具体的路径.

一.打开Business Intelligence Development Studio平台.然后文件->新建->项目->选择SSIS项目.
二.菜单中选择SSIS->变量.调出变量窗口.然后新增几个变量.如图:



InFileFolder : 准备压缩文件的目录
InFileType : 准备压缩文件的文件类型.即扩展名
OutExecuteCommand : 执行压缩命令的命令参数
OutFileFolder : 存储压缩文件的目录
OutFileName : 存储压缩文件的文件名
OutFullName : 压缩文件的完整路径和文件名
Password : 压缩文件的密码. *为空是表示不加密码压缩

三.在控制流上添加一个脚本任务.并双击进入脚本任务编辑器
(1)在ReadOnlyVariables 里添加InFileFolder,InFileType,OutFileFolder,Password
(2)在ReadWriteVariables里添加 OutExecuteCommand,OutFileName,OutFullName
(3)脚本语言选择 Visual Basic
 
(4)点击编辑脚本按钮.进入代码编辑器.
在Main方法里添加如下代码
VB.NET code
Public Sub Main() Dim InFileFolder, InFileType, OutFileName, OutFileFolder, OutExecuteCommand, Password, OutFullName As String Dim sYear, sMonth, sDay As String Dim FileDate As String InFileFolder = Dts.Variables("InFileFolder").Value.ToString InFileType = Dts.Variables("InFileType").Value.ToString OutFileFolder = Dts.Variables("OutFileFolder").Value.ToString Password = Dts.Variables("Password").Value.ToString sYear = Now.Year.ToString sMonth = Now.Month.ToString sDay = Now.Day.ToString If sMonth.Length < 2 Then sMonth = "0" & sMonth If sDay.Length < 2 Then sDay = "0" & sDay FileDate = sYear & sMonth & sDay OutFileName = "Archive" & FileDate & ".zip" OutFullName = OutFileFolder & OutFileName OutExecuteCommand = " a -tzip " If Password <> "" Then OutExecuteCommand += "-p""" & Password & """" End If OutExecuteCommand += " """ & OutFullName & """ """ & InFileFolder & "*." & InFileType & """" Dts.Variables("OutFileName").Value = OutFileName Dts.Variables("OutExecuteCommand").Value = OutExecuteCommand Dts.Variables("OutFullName").Value = OutFullName Dts.TaskResult = ScriptResults.SuccessEnd Sub

(5)点击生成并保存退出

四.添加一个执行进程任务,并将脚本任务的成功流拖往该执行进程任务.并双击进入执行进程任务编辑器.并设置如图:
(1)
   
  (2).进入表达式设置.在Expressions里点击右边的对话按钮.并打开属性表达式编辑器.在属性里选择Arguments.并在表达式里选择OutExecuteCommand变量,如图
 
  (3) 确定返回

五.在控制流里添加一个执行SQL任务.将执行进程任务的成功流拖往该执行SQL任务.并双击进入执行SQL任务编辑器

在Connection里设置为一个连接SQL Server的连接管理器.在SQLStatement里输入:
SQL code
exec msdb.dbo.sp_send_dbmail @profile_name='myfend', @recipients='myfend@hotmail.com', @subject='测试附件', @file_attachments=?

在参数映射里添加一个参数.变量名选择OutFullName,方向为Input,数据类型为VARCHAR,参数名称为0,参数大小为1024
 
点击确定返回.

并按F5执行包
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 想问别人问题又不好开口怎么办 宝宝认人晚上哭着找阿姨怎么办呀 在拼多多被商家威胁了怎么办 格来云游戏禁止改画质怎么办 京东换了手机登陆要安全验证怎么办 百度网盘登录总是需要验证码怎么办 在微信群发出视频无法撤回怎么办 百度网盘客户端说网络有风险怎么办 百度网盘绑定的手机号注销了怎么办 百度网盘绑定的手机号不用了怎么办 百度网盘内存怎么清空不了怎么办 百度网盘下载时本地空间不足怎么办 百度网盘文件放到桌面太大怎么办 百度有钱花借款没有钱还怎么办 安心流量包扣了两百多钱怎么办 邮箱里超大附件的文件过期了怎么办 ps时间轴储存出现参数错误怎么办 苹果手机网易云会员支付失败怎么办 鲸钱包网络异常需重新加载怎么办 微信加载联系人失败点击重试怎么办 网易将军令没有帐号怎么绑定怎么办 网易将军令绑定银行卡锁定了怎么办 网易新闻上的视频没有声音怎么办 把登录窗体的宏删掉了怎么办 电脑死机了怎么办也不能关机了 虎牙直播手游无法和队友开麦怎么办 为成年开无手续麽托出车祸怎么办 支付宝商户未签约或合约过期怎么办 我的手机帐号被锁定了怎么办 点错网页下载收发收费信息怎么办 用邮箱注册的微信忘记密码了怎么办 很久不用的邮箱号忘记密码怎么办 陕西省志愿云忘记密码和邮箱怎么办 国寿易学堂忘记登录密码怎么办 百度云下载显示本地空间不足怎么办 百度云离线内容违规无法下载怎么办 百度云压缩包要压解密码没有怎么办 用2016酷我音乐制作铃音怎么办 邮箱跟手机号一同绑定支付宝怎么办 网易邮箱取消账户关联没反应怎么办 剑三重置版客户端修复不成功怎么办