位置: 编程技术 - 正文

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

编辑:rootadmin
这些包可以独立使用,也可以与其他包一起使用以满足复杂的业务需求。Integration Services 可以提取和转换来自多种源(如 XML 数据文件、平面文件和关系数据源)的数据,然后将这些数据加载到一个或多个目标。(摘自MSDN,更多详细信息可参考: 下面我使用SSIS来演示一个实际例子。比如我有一个数据库,出于备份数据或者其它的目的,会定期的对这个数据库的数据迁移到其它的数据库去。迁移的时候,有些新增的字段会被插入备份数据库,而有些被修改过的字段也会在备份数据库被修改。现在我们就用SSIS来完成这项任务。 首先在我源数据库db_source和目标数据库db_destination中运行以下SQL创建好需要的表,就以这一个表test_1来进行示范。

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

现在我们打开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这个属性来排序。(详见: Join的时候,会让我们选择这个输入的数据是作为左输入还是右输入,我们按照图示的那样,左边的作为左输入,右边的作为右输入。然后我们双击Merge Join,按照如下图所示设置:

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

现在我们需要一个分支,即新的数据需要插入备份数据库中,而已有的数据需要更新为新的值。我们从工具栏中拖入一个Conditional Split来进行这样的分支处理。我们将Merge Sort中的输出指向Conditional Split,然后双击Conditional Split,如下图所示设置(注意条件一个是ISNULL,一个是非ISNULL)。

这时它们的输入值就被分成两种条件输出,最后我们再拖入一个OLE DB Destination来插入数据和一个OLE DB Command来更新数据库,最终流程如下图:

双击设置OLE DB Destionation,选择好数据导入的目标数据库中的表,这里需要注意的就是要钩选Keep identity这个选项,因为我创建表的时候对ID字段使用了自增属性。

双击设置OLE DB Command,首先在Connection Managers这个Tab中选择好链接对象,然后在Component Properties这个选项卡中,设置你的SqlCommand属性。如下图:

这里的参数值都是用?号来代替,之后在Column Mappings这个Tab中设置代替值实际代替的列,如下图:

至此,任务就创建完毕了,没有编写任何代码,直接拖拉完成了。现在可以直接在VS中按F5运行看下效果,我们的目标数据表将插入源数据表中的值。然后我们修改一下原数据表,再来运行一下上面这个任务,就可以在目标数据库中看到更改了。

那么如何去定时完成任务哩?这里可以用SQL Server Agent去调用上面我们写好的包, 或者在Windows计划任务中使用DTExec.exe去执行上面的任务。

推荐整理分享使用SSIS创建同步数据库数据任务的方法,希望有所帮助,仅作参考,欢迎阅读内容。

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

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

SQL语句实例说明 方便学习mysql的朋友 MySQL中模式就是数据库SHOWDATABASES;showdatabases;罗列所有数据库名称CREATEDATABASE数据库名createdatabaseTEST;创建名为TEST的数据库DROPDATABASE数据库名dropdatabaseTEST;

SQL Server 到底需要使用哪些端口? 下面就来介绍下SQLServer中使用的端口有哪些:首先,最常用最常见的就是端口。这个是数据库引擎的端口,如果我们要远程连接数据库引擎,那么

sqlserver 存储过程带事务 拼接id 返回值 删除一条留言信息会级联删除回复信息,这时我们需要用到事务,如下SQLALTERPROCEDURE[dbo].[proc_tb_leaveword_delete](@leavewordIDINT,@recordTINYINTOUTPUT)ASBEGINBEGINTRYBEGIN

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

本文链接地址:https://www.jiuchutong.com/biancheng/348194.html 转载请保留说明!

上一篇:编程经验点滴 动态SQL的拼接技巧(编程经验点滴怎么写)

下一篇:SQL语句实例说明 方便学习mysql的朋友(sql语句示例)

  • 劳务公司发放农民工工资要开发票吗?
  • 小规模纳税人的条件
  • 小规模纳税开专票享受季度30万纳税
  • 缴纳以前年度所得税怎么做账
  • 季度对账单 怎么处理
  • 公司油票怎么抵扣
  • 合并报表营业收入怎么算出来的
  • 公司出租非自有房产
  • 当买方违约时,卖方可以得到哪些补救?
  • 工会签约有什么好处
  • 增值税是否计入固定资产成本
  • 以旧换新如何确认收入
  • 产业扶持资金管理办法
  • 劳务派遣公司工作内容描述
  • 社保逾期滞纳金可以免除吗?
  • 免税收入的三个条件
  • 当月未认证发票分录
  • 旅行社 增值税
  • 非盈利企业账务处理
  • 税前所得税怎么算
  • 企业所得税少交了被税局查到怎么处理
  • 运费抵扣的税收筹划是怎样的?
  • 残疾人就业保障金怎么申报
  • 汽修厂纳税多少
  • 企业吸收合并税收政策
  • 个体户注销麻烦还是公司注销麻烦
  • 进厂的政府补贴怎么拿
  • win10禁用安全杀毒功能
  • 材料暂估入库需要备案吗
  • 王者荣耀中刘邦技能解析以及如何连招
  • adb命令linux命令的区别
  • php字符串变量
  • 已付货款没有发票能做支出吗
  • php数组函数实现机选双色球
  • 员工宿舍的物业费要交个税吗
  • 上月抵扣的发票怎么开
  • 材料委托加工
  • 未认证用户是什么意思
  • vue ref获取元素高度
  • 直接费用的定义
  • 考到二本
  • opencv图像处理入门与实践pdf
  • 有进项税额转出怎么做账
  • 计提并缴纳个税分录
  • 织梦上传图片大小设置
  • 快递公司的收件员好干吗
  • python中lambda用法
  • 土石方收据图片
  • 增值税报完了能改么
  • 承兑汇票上能手写名字吗
  • 旅游业营改增怎么报税
  • 税务师有用么,相当于中级还是高级
  • 购买固定资产用什么凭证
  • 小规模纳税人收普票和专票有什么区别
  • 车间购买劳保费用会计分录
  • 职工薪酬费用属于什么费用
  • 代驾服务费属于哪个税收编码
  • 预收账款变成了什么
  • 企业防止股权收益的措施
  • 客观原因怎么写
  • 开个人普票需要身份证吗
  • 公司的钱如何提出来
  • 固定资产处置有什么问题
  • 苹果mac怎么清理缓存
  • 红帽子一个月能挣多少钱
  • 浏览器8系统怎么打不开主页
  • linux find . -name命令
  • windows7网速慢怎么解决
  • win1020h2版好不好
  • WIN7系统如何关掉游戏屏保
  • iframe移动端自适应
  • 家字取名男孩名字
  • 从零基础开始学
  • Android 判断是否打开了微信
  • jquery中如何获取元素?
  • 安卓状态栏宽度
  • JavaScript 入门·JavaScript 具有全范围的运算符
  • 计算两gps坐标之间距离
  • 包头市税务局赵文胜
  • 智利有什么自然景观
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设