SSIS处理导入数据时 存在的更新 不存在的插入

上传人:d**** 文档编号:158505028 上传时间:2022-10-05 格式:DOCX 页数:6 大小:19.50KB
收藏 版权申诉 举报 下载
SSIS处理导入数据时 存在的更新 不存在的插入_第1页
第1页 / 共6页
SSIS处理导入数据时 存在的更新 不存在的插入_第2页
第2页 / 共6页
SSIS处理导入数据时 存在的更新 不存在的插入_第3页
第3页 / 共6页
资源描述:

《SSIS处理导入数据时 存在的更新 不存在的插入》由会员分享,可在线阅读,更多相关《SSIS处理导入数据时 存在的更新 不存在的插入(6页珍藏版)》请在装配图网上搜索。

1、问题描述:当你把数据从其他数据库,或者是文本文件之类的其他数据源导入到目的数据库时,有时希望在导入的处 理中,能够实现数据存在时更新,不存在时导入在之前,一般是通过导入临时表,然后再判断处理导入正式表的,在SQL Server 2005中,SSIS可以在导入处 理时直接完成这种处理.下面具体演示一下如何用SSIS完成这样的处理:1.准备测试环境-1.在数据库中创建下面的对象USE tempdbGOCREATE TABLE dbo.tb(id int PRIMARY KEY,name nvarchar(128)GO- 2.准备两个文本文件,放在d:/test目录下,文件的内容如下t1 txtid

2、 name1 张三2 李四t2 txtid name1 张三君3 李林4 阿联酋在“开始”菜单中,依次指向所有程序、“Microsoft SQL Server 2005,再单击SQL Server BusinessIntelligence Development Studio。在“文件菜单中,指向“新建,再单击“项目,以创建一个新的Integration Services项目。在“新建项目对话框的“模板窗格中,选择“Integration Services项目。在“名称”框中,将默认名称更改为SSIS Tutorial。或者,清除“创建解决方案的目录”复选框。接受默认位置,或单击“浏览”,以浏

3、览并找到要使用的文件夹。在“项目位置”对话框中,单击文件夹,再单击“打开”。单击“确定”。默认情况下,将创建一个名为新建包.dtsx “的空包,并将该包添加到项目中。在解决方案资源管理器工具栏中,右键单击Package.dtsx,再单击“重命名”,将默认包重命名为Lesson l.dtsx。当系统提示重命名包对象时,单击“是”。3.为SSIS包添加数据源(导入数据的源和目标数据源)首先添加导入数据的源右键单击“连接管理器”区域中的任意位置,再单击“新建平面文件连接”。在“平面文件连接管理器编辑器”对话框的“连接管理器名称”字段中,键入Source。单击“浏览”。在“打开”对话框中,浏览并找到“

4、d:/test/tl.txt”文件。 “常规”选项中,勾选“在第1个数据行中显示列名称”。 高级”选项中,选择“id”歹U,将数据类型设置为“four-byte single integerDT_I4”。 高级”选项中,选择“name”歹U,将数据类型设置为“Unicode stringDT_WSTR”。然后,你可以在“预览”中查看数据是否正确。然后添加接收数据的目的数据源右键单击连接管理器区域中的任意位置,再单击“新建OLE DB连接”。在“配置OLE DB连接管理器”对话框中,单击“新建”。在“服务器名称”中,输入localhosto将localhost指定为服务器名称时,连接管理器将连接

5、到本地计算机上Microsoft SQL Server 2005的 默认实例。若要使用SQL Server 2005的远程实例,请将localhost替换为要连接到的服务器的名称。在“登录到服务器”组中,确认选择了“使用Windows身份验证”。在“连接到数据库”组的“选择或输入数据库名称”框中,键入或选择tempdbo单击“测试连接”,验证指定的连接设置是否有效。单击“确定”。单击“确定”。在“配置OLE DB连接管理器”对话框的“数据连接”窗格中,确认选择了 localhost.tempdbo单击“确定”。4. 为SSIS包添加数据流任务单击“控制流”选项卡。在“工具箱”中,展开“控制流项

6、”,并将一个数据流任务拖到“控制流”选项卡的设计图面上。在“控制流”设计图面中,右键单击新添加的数据流任务,再单击“重命名”,将名称更改为Import Data。5. 在数据流任务中设置数据流源打开“数据流”设计器,方法是双击Import Data数据流任务或单击“数据流”选项卡。在“工具箱”中,展开“数据流源”,然后将“平面文件源”拖动到“数据流”选项卡的设计图面上。在“数据流”设计图面上,右键单击新添加的“平面文件源”,单击“重命名”,然后将该名称更改为SourceDatao双击此平面文件源,打开“平面文件源编辑器”对话框。在“平面文件连接管理器”框中,键入或选择Sourceo单击“列”并

7、验证列名是否正确。单击“确定”。6. 在数据流任务中添加査找处理组件在“工具箱”中,展开“数据流转换”,然后将“查找”拖动到“数据流”选项卡的设计图面上。将 “查找直接放置在Source Data源的下面。单击Source Data平面文件源,并将绿色箭头拖动到新添加的“查找”转换中,以连接这两个组件。在“数据流”设计图面上,右键单击新添加的“查找”转换,单击“重命名”,然后将该名称更改为Lookupid。双击Lookup id转换。在“查找转换编辑器”对话框的“OLE DB连接管理器”框中,确保显示loca山ost.tempdb。在“使用表或视图”框中,键入或选择dbo.tb。单击“列”选项

8、卡。在“可用输入列”面板中,将id拖放到“可用查找列”面板的id上。单击“确定”。7. 在数据流任务中添加插入数据处理需要的目标数据源在“工具箱”中,展开“数据流目标”,并将“OLE DB目标”拖到“数据流”选项卡的设计图面上。 将OLE DB目标直接放置在“Lookup id”转换的下面。单击“Lookup id”转换,并将红色箭头拖到新添加的“OLE DB目标”上,以便将两个组件连接在一起。在出现的“配置错误输出”对话框中,“错误”列中选择“重定向行”单击“确定”。在“数据流”设计图面上,右键单击新添加的“OLE DB目标”组件,单击“重命名”,然后将名称更改为Insert data。 双

9、击 Insert data。在“OLE DB目标编辑器”对话框中,确保已在“OLE DB连接管理器”框中选中loca山ost.tempdb。在“表或视图的名称”框中,键入或选择dbo.tb。单击“映射”。验证id, name输入列是否已正确映射到目标列。如果映射了同名列,则说明映射正确。单击“确定”。&在数据流任务中添加更新数据处理需要的OLE DB命令组件在“工具箱”中,展开“数据流组件转换”,并将“OLE DB命令”拖到“数据流”选项卡的设计图面 上。将OLE DB目标直接放置在“Lookup id”转换的下面。单击“Lookup id”转换,并将绿色箭头拖到新添加的“OLE DB命令”上

10、,以便将两个组件连接在一起。在“数据流”设计图面上,右键单击新添加的“OLE DB命令”组件,单击“重命名”,然后将名称更改为 Update data。 双击 Update data。在“Update Data高级编辑器”对话框中,连接管理选项的连接管理器列中,选中loca山ost.tempdb。在“组件属性”选项中,“自定义属性”的“SQLCommand”属性中输入:UPDATE dbo.tb SET name = ? WHERE id = ?在“列映射”选项中,设置输入列”,将name映射到param_0,将id映射到param_l。注:param_0 对应UPDAT语句中的第1个?,而p

11、aram l对应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目录下所有文件的导入 在

12、 Business Intelligence Development Studio 中,单击“控制流”选项卡。在“工具箱”中,展开“控制流项”,然后将“Foreach循环容器”拖到“控制流”选项卡的设计图面上。右键单击新添加的“Foreach循环容器”,并选择“编辑”。在“Foreach循环编辑器”对话框的“常规”页中,为“名称”输入Foreach File in Folder。单击“确定”。为Foreach循环容器配置枚举器双击文件夹中的Foreach文件以重新打开“Foreach循环编辑器”。单击“集合”。在“集合”页中,选择“Foreach文件枚举器”。在“枚举器配置”组中,单击“浏览”

13、。在“浏览文件夹”对话框中,找到d:/test。在“文件”框中,键入*.txt。单击“变量映射”,将枚举器映射为用户定义的变量。在“变量映射”页的“变量”列中,单击空单元格并选择“新建变量.”。在“添加变量”对话框中,为“名称”键入varFileName。单击“确定”。再次单击“确定”,退出“Foreach循环编辑器”对话框。将数据流任务Import Data数据流任务拖动到现已重命名为Foreach File in Folder的Foreach循环容 器中。配置平面文件连接管理器以使用连接字符串的变量在“连接管理器”窗格中,右键单击Source Data,再选择“属性”。在“属性”窗口中,针对“表达式”,单击空单元,然后单击省略号按钮“()”。在“属性表达式编辑器”对话框的“属性”列中,键入或选择Connectionstring。在“表达式”列中,单击省略号按钮“()”以打开“表达式生成器”对话框。在“表达式生成器”对话框中,展开“变量”节点。将变量用户:varFileName拖到“表达式”框中。单击“确定”关闭“表达式生成器”对话框。再次单击“确定”关闭“属性表达式编辑器”对话框。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!