Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18671350
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: 数据库开发技术

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+F5,重新启动SSIS

Ø       执行结束(所有的组件都变为绿色),你会看到数据流向“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 拖到表达式框中。

Ø       单击确定关闭表达式生成器对话框。

Ø       再次单击确定关闭属性表达式编辑器对话框。

 

阅读(2081) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~