SSIS处理导入数据时, 存在的更新, 不存在的插入
上一篇 /
下一篇 2008-01-31 12:00:32
/ 个人分类:技术文章
问题描述:
当你把数据从其他数据库,或者是文本文件之类的其他数据源导入到目的数据库时,有时希望在导入的处理中,能够实现"数据存在时更新,不存在时导入"
在之前,一般是通过导入临时表,然后再判断处理导入正式表的,在SQL
Server 2005中,
SSIS可以在导入处理时直接完成这种处理.
下面具体演示一下如何用SSIS完成这样的处理:
--
1.在数据库中创建下面的对象
USEtempdb
GO
CREATETABLEdbo.tb(
idintPRIMARYKEY,
namenvarchar(128))
GO
--
2.准备两个文本文件,放在d:\test目录下,文件的内容如下
t1.txt
id name
1 张三
2 李四
t2.txt
id name
1 张三君
3 李林
4 阿联酋
2. 创建新的Integration
Services项目(创建SSIS包)
Ø 在“开始”菜单中,依次指向“所有程序”、“Microsoft SQL
Server2005”,再单击SQL Server Business Intelligence Development
Studio。
Ø 在“文件”菜单中,指向“新建”,再单击“项目”,以创建一个新的Integration
Services项目。
Ø 在“新建项目”对话框的“模板”窗格中,选择“Integration
Services项目”。
Ø 在“名称”框中,将默认名称更改为SSIS
Tutorial。或者,清除“创建解决方案的目录”复选框。
Ø 接受默认位置,或单击“浏览”,以浏览并找到要使用的文件夹。
Ø 在“项目位置”对话框中,单击文件夹,再单击“打开”。
Ø 单击“确定”。
Ø 默认情况下,将创建一个名为“新建包.dtsx“的空包,并将该包添加到项目中。
Ø 在解决方案资源管理器工具栏中,右键单击Package.dtsx,再单击“重命名”,将默认包重命名为Lesson
1.dtsx。
Ø 当系统提示重命名包对象时,单击“是”。
3. 为SSIS包添加数据源(导入数据的源和目标数据源)
Ø 首先添加导入数据的源
Ø 右键单击“连接管理器”区域中的任意位置,再单击“新建平面文件连接”。
Ø 在“平面文件连接管理器编辑器”对话框的“连接管理器名称”字段中,键入Source。
Ø 单击“浏览”。
Ø 在“打开”对话框中,浏览并找到“d:\test\t1.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。
Ø 单击“测试连接”,验证指定的连接设置是否有效。
Ø 单击“确定”。
Ø 单击“确定”。
Ø 在“配置OLE DB连接管理器”对话框的“数据连接”窗格中,确认选择了localhost.tempdb。
Ø 单击“确定”。
Ø 单击“控制流”选项卡。
Ø 在“工具箱”中,展开“控制流项”,并将一个数据流任务拖到“控制流”选项卡的设计图面上。
Ø 在“控制流”设计图面中,右键单击新添加的数据流任务,再单击“重命名”,将名称更改为Import
Data。
Ø 打开“数据流”设计器,方法是双击Import Data数据流任务或单击“数据流”选项卡。
Ø 在“工具箱”中,展开“数据流源”,然后将“平面文件源”拖动到“数据流”选项卡的设计图面上。
Ø 在“数据流”设计图面上,右键单击新添加的“平面文件源”,单击“重命名”,然后将该名称更改为Source
Data。
Ø
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: