源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-07-25 12:20 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:使用SSIS创建同步数据库数据任务的方法
这些包可以独立使用,也可以与其他包一起使用以满足复杂的业务需求。Integration Services 可以提取和转换来自多种源(如 XML 数据文件、平面文件和关系数据源)的数据,然后将这些数据加载到一个或多个目标。(摘自MSDN,更多详细信息可参考:[url=http://technet.microsoft.com/zh-cn/library/ms141026(v=sql.105).aspx]http://technet.microsoft.com/zh-cn/library/ms141026(v=sql.105).aspx[/url]) 下面我使用SSIS来演示一个实际例子。比如我有一个数据库,出于备份数据或者其它的目的,会定期的对这个数据库的数据迁移到其它的数据库去。迁移的时候,有些新增的字段会被插入备份数据库,而有些被修改过的字段也会在备份数据库被修改。现在我们就用SSIS来完成这项任务。 首先在我源数据库db_source和目标数据库db_destination中运行以下SQL创建好需要的表,就以这一个表test_1来进行示范。
[url=http://msdn.microsoft.com/zh-cn/library/ms137653.aspx]http://msdn.microsoft.com/zh-cn/library/ms137653.aspx[/url]) 这里我们第一次从Sort拉箭头到Merge Join的时候,会让我们选择这个输入的数据是作为左输入还是右输入,我们按照图示的那样,左边的作为左输入,右边的作为右输入。然后我们双击Merge Join,按照如下图所示设置: [img]http://files.jb51.net/file_images/article/201209/201209191435289.png[/img] 这里打钩的是这个流程之后输出的数据,Join Type需要选择为Left outer join,因为左边是我们的原始数据表,右边是我们备份的表,右表可以看成是一个左表的一个子集,如果左表有的数据,右表没有的,那些就是需要新插入备份数据库的数据。 现在我们需要一个分支,即新的数据需要插入备份数据库中,而已有的数据需要更新为新的值。我们从工具栏中拖入一个Conditional Split来进行这样的分支处理。我们将Merge Sort中的输出指向Conditional Split,然后双击Conditional Split,如下图所示设置(注意条件一个是ISNULL,一个是非ISNULL)。 [img]http://files.jb51.net/file_images/article/201209/2012091914352810.png[/img] 这时它们的输入值就被分成两种条件输出,最后我们再拖入一个OLE DB Destination来插入数据和一个OLE DB Command来更新数据库,最终流程如下图: [img]http://files.jb51.net/file_images/article/201209/2012091914352811.png[/img]   双击设置OLE DB Destionation,选择好数据导入的目标数据库中的表,这里需要注意的就是要钩选Keep identity这个选项,因为我创建表的时候对ID字段使用了自增属性。 双击设置OLE DB Command,首先在Connection Managers这个Tab中选择好链接对象,然后在Component Properties这个选项卡中,设置你的SqlCommand属性。如下图: [img]http://files.jb51.net/file_images/article/201209/2012091914352812.png[/img]   这里的参数值都是用?号来代替,之后在Column Mappings这个Tab中设置代替值实际代替的列,如下图: [img]http://files.jb51.net/file_images/article/201209/2012091914352813.png[/img] 至此,任务就创建完毕了,没有编写任何代码,直接拖拉完成了。现在可以直接在VS中按F5运行看下效果,我们的目标数据表将插入源数据表中的值。然后我们修改一下原数据表,再来运行一下上面这个任务,就可以在目标数据库中看到更改了。 那么如何去定时完成任务哩?这里可以用SQL Server Agent去调用上面我们写好的包, 或者在Windows计划任务中使用DTExec.exe去执行上面的任务。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部