分类: 数据库开发技术
2008-05-28 15:07:29
6. 在数据流任务中添加查找处理组件
Ø 在“工具箱”中,展开“数据流转换”,然后将“查找”拖动到“数据流”选项卡的设计图面上。将“查找”直接放置在Source Data 源的下面。
Ø 单击Source Data 平面文件源,并将绿色箭头拖动到新添加的“查找”转换中,以连接这两个组件。
Ø 在“数据流”设计图面上,右键单击新添加的“查找”转换,单击“重命名”,然后将该名称更改为Lookup id。
Ø 双击Lookup id 转换。
Ø 在“查找转换编辑器”对话框的“OLE DB 连接管理器”框中,确保显示localhost.tempdb。
Ø 在“使用表或视图”框中,键入或选择[dbo].[tb]。
Ø 单击“列”选项卡。
Ø 在“可用输入列”面板中,将id 拖放到“可用查找列”面板的id 上。
Ø 单击“确定”。
7. 在数据流任务中添加插入数据处理需要的目标数据源
Ø 在“工具箱”中,展开“数据流目标”,并将“OLE DB 目标”拖到“数据流”选项卡的设计图面上。将OLE DB 目标直接放置在“Lookup id”转换的下面。
Ø 单击“Lookup id”转换,并将红色箭头拖到新添加的“OLE DB 目标”上,以便将两个组件连接在一起。
Ø 在出现的“配置错误输出”对话框中,“错误”列中选择“重定向行”
Ø 单击“确定”。
Ø 在“数据流”设计图面上,右键单击新添加的“OLE DB 目标”组件,单击“重命名”,然后将名称更改为Insert data。
Ø 双击Insert data。
Ø 在“OLE DB 目标编辑器”对话框中,确保已在“OLE DB 连接管理器”框中选中localhost.tempdb。
Ø 在“表或视图的名称”框中,键入或选择[dbo].[tb]。
Ø 单击“映射”。
Ø 验证id, name 输入列是否已正确映射到目标列。如果映射了同名列,则说明映射正确。
Ø 单击“确定”。
8. 在数据流任务中添加更新数据处理需要的OLE DB命令组件
Ø 在“工具箱”中,展开“数据流组件转换”,并将“OLE DB 命令”拖到“数据流”选项卡的设计图面上。将OLE DB 目标直接放置在“Lookup id”转换的下面。
Ø 单击“Lookup id”转换,并将绿色箭头拖到新添加的“OLE DB 命令”上,以便将两个组件连接在一起。
Ø 在“数据流”设计图面上,右键单击新添加的“OLE DB命令”组件,单击“重命名”,然后将名称更改为Update data。
Ø 双击Update data。
Ø 在“Update Data 高级编辑器”对话框中,“连接管理”选项的“连接管理器”列中,选中localhost.tempdb。
Ø 在“组件属性”选项中,“自定义属性”的“SQLCommand”属性中输入:
UPDATE dbo.tb SET name = ? WHERE id = ?
Ø 在“列映射”选项中,设置“输入列”,将name映射到param_0,将id映射到param_1。注:param_0对应UPDAT语句中的第1个?,而param_1对应UPDATE语句中的第2个?,这是固定的。
Ø 单击“确定”。
9. 测试
Ø 按“F5”执行SSIS包
Ø 执行结束(所有的组件都变为绿色),你会看到数据流向“Inset Data”的有两条数据
Ø 双击“连接管理器”中的Source,重新设置文件名为D:\test\d2.txt。
Ø 单击“确定”
Ø 按“Ctrl+Shift+F
Ø 执行结束(所有的组件都变为绿色),你会看到数据流向“Inset Data”的有两条数据,流向“Update Data”的有1条数据
Ø 最后,在数据库中查询tempdb.dbo.tb,验证数据导入的正确性
10. 添加循环,一次完成test目录下所有文件的导入
Ø 在Business Intelligence Development Studio 中,单击“控制流”选项卡。
Ø 在“工具箱”中,展开“控制流项”,然后将“Foreach 循环容器”拖到“控制流”选项卡的设计图面上。
Ø 右键单击新添加的“Foreach 循环容器”,并选择“编辑”。
Ø 在“Foreach 循环编辑器”对话框的“常规”页中,为“名称”输入Foreach File in Folder。单击“确定”。
Ø 为Foreach 循环容器配置枚举器
Ø 双击文件夹中的Foreach 文件以重新打开“Foreach 循环编辑器”。
Ø 单击“集合”。
Ø 在“集合”页中,选择“Foreach 文件枚举器”。
Ø 在“枚举器配置”组中,单击“浏览”。
Ø 在“浏览文件夹”对话框中,找到d:\test。
Ø 在“文件”框中,键入*.txt。
Ø 单击“变量映射”, 将枚举器映射为用户定义的变量。
Ø 在“变量映射”页的“变量”列中,单击空单元格并选择“<新建变量…>”。
Ø 在“添加变量”对话框中,为“名称”键入varFileName。
Ø 单击“确定”。
Ø 再次单击“确定”,退出“Foreach 循环编辑器”对话框。
Ø 将数据流任务Import Data 数据流任务拖动到现已重命名为Foreach File in Folder 的Foreach 循环容器中。
Ø 配置平面文件连接管理器以使用连接字符串的变量
Ø 在“连接管理器”窗格中,右键单击Source Data,再选择“属性”。
Ø 在“属性”窗口中,针对“表达式”,单击空单元,然后单击省略号按钮“(…)”。
Ø 在“属性表达式编辑器”对话框的“属性”列中,键入或选择ConnectionString。
Ø 在“表达式”列中,单击省略号按钮“(…)”以打开“表达式生成器”对话框。
Ø 在“表达式生成器”对话框中,展开“变量”节点。
Ø 将变量用户::varFileName 拖到“表达式”框中。
Ø 单击“确定”关闭“表达式生成器”对话框。
Ø 再次单击“确定”关闭“属性表达式编辑器”对话框。