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方法里添加如下代码
(5)点击生成并保存退出
四.添加一个执行进程任务,并将脚本任务的成功流拖往该执行进程任务.并双击进入执行进程任务编辑器.并设置如图:
(1)
(2).进入表达式设置.在Expressions里点击右边的对话按钮.并打开属性表达式编辑器.在属性里选择Arguments.并在表达式里选择OutExecuteCommand变量,如图
(3) 确定返回
五.在控制流里添加一个执行SQL任务.将执行进程任务的成功流拖往该执行SQL任务.并双击进入执行SQL任务编辑器
在Connection里设置为一个连接SQL Server的连接管理器.在SQLStatement里输入:
在参数映射里添加一个参数.变量名选择OutFullName,方向为Input,数据类型为VARCHAR,参数名称为0,参数大小为1024
点击确定返回.
并按F5执行包
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.Success End 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执行包