ITPub博客

首页 > 数据库 > 数据库开发技术 > SSIS处理导入数据时, 存在的更新, 不存在的插入

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

原创 数据库开发技术 作者:caixia615 时间:2007-01-21 10:04:16 0 删除 编辑

问题描述:

当你把数据从其他数据库, 或者是文本文件之类的其他数据源导入到目的数据库时, 有时希望在导入的处理中, 能够实现"数据存在时更新, 不存在时导入"

在之前, 一般是通过导入临时表, 然后再判断处理导入正式表的, 在SQL Server 2005中, SSIS可以在导入处理时直接完成这种处理.

下面具体演示一下如何用SSIS完成这样的处理:

1. 准备测试环境

-- 1. 在数据库中创建下面的对象

USE tempdb

GO

CREATE TABLE dbo.tb(

id int PRIMARY KEY,

name nvarchar(128))

GO

-- 2. 准备两个文本文件, 放在d:test 目录下, 文件的内容如下

t1.txt

id name

1 张三

2 李四

t2.txt

id name

1 张三君

3 李林

4 阿联酋

2. 创建新的 Integration Services 项目(创建SSIS包)

Ø 在“开始”菜单中,依次指向“所有程序”、“Microsoft SQL Server 2005”,再单击 SQL Server Business Intelligence Development Studio。

Ø 在“文件”菜单中,指向“新建”,再单击“项目”,以创建一个新的 Integration Services 项目。

Ø 在“新建项目”对话框的“模板”窗格中,选择“Integration Services 项目”。

Ø 在“名称”框中,将默认名称更改为 SSIS Tutorial。或者,清除“创建解决方案的目录”复选框。

Ø 接受默认位置,或单击“浏览”,以浏览并找到要使用的文件夹。

Ø 在“项目位置”对话框中,单击文件夹,再单击“打开”。

Ø 单击“确定”。

Ø 默认情况下,将创建一个名为 “新建包.dtsx“ 的空包,并将该包添加到项目中。

Ø 在解决方案资源管理器工具栏中,右键单击 Package.dtsx,再单击“重命名”,将默认包重命名为 Lesson 1.dtsx。

Ø 当系统提示重命名包对象时,单击“是”。

3. 为SSIS包添加数据源(导入数据的源和目标数据源)

Ø 首先添加导入数据的源

Ø 右键单击“连接管理器”区域中的任意位置,再单击“新建平面文件连接”。

Ø 在“平面文件连接管理器编辑器”对话框的“连接管理器名称”字段中,键入 Source。

Ø 单击“浏览”。

Ø 在“打开”对话框中,浏览并找到“d:testt1.txt”文件。

Ø “常规”选项中,勾选“在第1个数据行中显示列名称”。

Ø “高级”选项中,选择“id”列,将数据类型设置为“four-byte single integer[DT_I4]”。

Ø “高级”选项中,选择“name”列,将数据类型设置为“Unicode string[DT_WSTR]”。

Ø 然后,你可以在“预览”中查看数据是否正确。

Ø 然后添加接收数据的目的数据源

Ø 右键单击连接管理器区域中的任意位置,再单击“新建OLE DB 连接”。

Ø 在“配置OLE DB 连接管理器”对话框中,单击“新建”。

Ø 在“服务器名称”中,输入localhost。

Ø 将localhost 指定为服务器名称时,连接管理器将连接到本地计算机上Microsoft SQL Server 2005 的默认实例。若要使用SQL Server 2005 的远程实例,请将localhost 替换为要连接到的服务器的名称。

Ø 在“登录到服务器”组中,确认选择了“使用Windows 身份验证”。

Ø 在“连接到数据库”组的“选择或输入数据库名称”框中,键入或选择tempdb。

Ø 单击“测试连接”,验证指定的连接设置是否有效。

Ø 单击“

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8591181/viewspace-891974/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论