博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqlserver cdc实现数据增量抽取
阅读量:4966 次
发布时间:2019-06-12

本文共 1621 字,大约阅读时间需要 5 分钟。

--创建测试库create database test;--创建配置表create table test..time_config(tb varchar(20) PRIMARY KEY,enddate binary(10));--创建业务表create table test..TB_s (ID INT PRIMARY KEY,NAME VARCHAR(20)); --原表create table test..TB_t (ID INT PRIMARY KEY,NAME VARCHAR(20),ISDELETED INT); --目标表--给配置表初始时间insert into test..time_configselect 'TB_t' as tb,max(start_lsn) as enddate from test.[cdc].[lsn_time_mapping]--开启cdcuse TESTGOEXEC sys.sp_cdc_enable_db --开启库级别cdcEXEC sys.sp_cdc_enable_table @source_schema = 'dbo', @source_name = 'TB_s', @role_name = null; --开启表cdcGO--增量实现存储过程create proc cdc_tb asdeclare @time_begin binary(10),@time_end binary(10)select @time_begin=max(enddate) from test.dbo.time_config    --上次结束时间,即本次开始时间select @time_end=max(start_lsn) from test.[cdc].[lsn_time_mapping]    --获取最大时间,即本次结束时间--抽取增量数据select ID,NAME,CASE WHEN __$operation=1 then 1 else 0 end as isdeleted into #tb_import from(select row_number()over(partition by id order by [__$start_lsn] desc,__$seqval,__$operation desc ) as rn,* from test.[cdc].[dbo_TB_s_CT] where [__$start_lsn]>@time_begin and [__$start_lsn]<=@time_end) t1 where rn=1;delete from test..TB_t where exists (select * from #tb_import);insert into test..TB_t select * from #tb_import;update test.dbo.time_config set enddate= @time_end where tb='TB_t';--将本次结束时间存入配置表;declare @count intselect @count=count(1) from #tb_import print('更新'+cast(@count as varchar(10))+'条记录')--测试添加:insert into TB_sselect 1,'aaa'--修改update TB_s set name='bbb' where id=1--删除delete from TB_s where id=1select * from TB_sexec cdc_tb --创建job 定时作业select * from TB_t

 

转载于:https://www.cnblogs.com/zzchao/p/11430092.html

你可能感兴趣的文章
Android测试(四)——内容供应器泄露
查看>>
HTML5学习路线资料,HTML5前端面试的技术栈
查看>>
letecode [532] - K-diff Pairs in an Array 解法优-时间复杂度O(nlogn),空间O(1)
查看>>
sqlce wp
查看>>
数据结构线性表的经典笔试面试题
查看>>
前端自动化构建工具 Webpack——3 webpack配置文件的使用
查看>>
t4模板的认识
查看>>
XShell命令行使用
查看>>
jQuery设置和获取HTML、文本和值
查看>>
国内著名黑客信息
查看>>
Celery 分布式任务队列快速入门
查看>>
head标签
查看>>
08.存储Cinder→5.场景学习→03.Attach Volume→2.实际操作
查看>>
R语言学习 - 线图绘制
查看>>
eos超时 锁表问题 网友办法
查看>>
Python学习笔记8(2)——序列的方法
查看>>
P3084 [USACO13OPEN]照片Photo
查看>>
matlab读取cvs文件的几种方法
查看>>
谈谈iOS Animation
查看>>
如何设置eclipse新建工程内文件的默认编码格式
查看>>