使用SSIS创建同步数据库数据任务的方法

来源:asp之家 时间:2012-11-30 19:53:44 

这些包可以独立使用,也可以与其他包一起使用以满足复杂的业务需求。Integration Services 可以提取和转换来自多种源(如 XML 数据文件、平面文件和关系数据源)的数据,然后将这些数据加载到一个或多个目标。(摘自MSDN,更多详细信息可参考:http://technet.microsoft.com/zh-cn/library/ms141026(v=sql.105).aspx

下面我使用SSIS来演示一个实际例子。比如我有一个数据库,出于备份数据或者其它的目的,会定期的对这个数据库的数据迁移到其它的数据库去。迁移的时候,有些新增的字段会 * 入备份数据库,而有些被修改过的字段也会在备份数据库被修改。现在我们就用SSIS来完成这项任务。

首先在我源数据库db_source和目标数据库db_destination中运行以下SQL创建好需要的表,就以这一个表test_1来进行示范。
代码如下:


CREATE TABLE [dbo].[test_1](
[Id] [int] IDENTITY(1,1) NOT NULL primary key,
[Name] [varchar](50) NULL,
[Age] [int] NULL
)

建好表好在源数据表中可以随便加几条记录,目标数据库暂时留空。

现在我们打开VS,创建一个Intergration Services Project。(注意:如果SQL Server 装的是Express版的话是没有这个项目工程模板的)


创建好工程后,在Control Flow这个Tab下拖入一个Data Flow Task,如下图:


双击这个Data Flow Task,我们就会进入Data Flow这个Tab标签中。


然后我们在左边工具栏里找到OLE DB Source,继续拖两个OLE DB Source出来。分别给它们命名为Source DB和Destination DB。


将数据源拖出来后,双击它,可以对它进行一些设置,主要就是链接数据库及选择你要进行迁移的表或者视图等设置,这里我就不详细说明了。注意一点的是就像上图所示,如果一个图形上出现一个红X的话说明设置有错误。

再来就是拖两个Sort及一个Merge Join出来,将之前的数据源箭头分别指向两个Sort,最后两个Sort出来的数据同时输入Merge Join中。

分别双击两个Sort,钩选表中的ID,对ID这个字段进行一次排序。因为Merge Join这个流程要求输入的数据是已排序好的。这个排序也可以直接在数据源中对它们的输出字段设置SortKeyPosition这个属性来排序。(详见:http://msdn.microsoft.com/zh-cn/library/ms137653.aspx

这里我们第一次从Sort拉箭头到Merge Join的时候,会让我们选择这个输入的数据是作为左输入还是右输入,我们按照图示的那样,左边的作为左输入,右边的作为右输入。然后我们双击Merge Join,按照如下图所示设置:

这里打钩的是这个流程之后输出的数据,Join Type需要选择为Left outer join,因为左边是我们的原始数据表,右边是我们备份的表,右表可以看成是一个左表的一个子集,如果左表有的数据,右表没有的,那些就是需要新插入备份数据库的数据。

标签:SSIS,同步数据库
0
投稿

猜你喜欢

  • expression为什么性能差?

    2009-05-28 19:12:00
  • 修改 Navicat 默认备份路径

    2009-08-23 21:10:00
  • sqlserver 触发器学习(实现自动编号)

    2012-10-07 10:58:03
  • 利用Google Ajax Library API加速常用js类库的载入

    2008-06-17 17:44:00
  • CSS实现元素透明的那些事

    2009-09-07 12:22:00
  • 利用XMLHTTP批量生成静态页的函数

    2008-09-10 11:07:00
  • 一个asp简单购物车教程

    2007-09-17 11:02:00
  • 下拉列表两级连动的新方法(一)

    2009-06-04 18:18:00
  • ASP实例:幻灯片新闻代码

    2008-11-21 17:40:00
  • SQL Server2000的安全策略

    2007-08-06 17:14:00
  • 设计高效的faq页面

    2011-06-10 13:13:00
  • 30个出色的分页设计

    2009-05-12 17:49:00
  • 提升网站可用性的3个忠告

    2008-01-31 13:48:00
  • 一列保存多个ID(将多个用逗号隔开的ID转换成用逗号隔开的名称)

    2012-08-21 10:37:37
  • 使用DIV+CSS设计网页的好处

    2007-10-14 15:02:00
  • link 和 style 元素在 HTML 文档中的位置

    2008-06-02 13:56:00
  • 高效的删除HTML标签的函数

    2009-02-26 13:02:00
  • 学习ASP.NET八天入门:第二天

    2007-08-07 13:24:00
  • 用CSS实现图片等比例缩放

    2008-01-18 21:10:00
  • 连接无法用于执行此操作。在此上下文中它可能已被关闭或无效

    2011-03-15 23:03:00
  • asp之家 网络编程 m.aspxhome.com