淮安:18505218550
常州:18118028216
淮安地址:淮安市清江浦区颐高广场3号楼工程917室
常州地址:常州市钟楼区怀德南路55号泰盈八千里5-8创新工场二楼
近日应客户需求,因其公司现有行业定制软件在往来账做得比较粗糙,所以想借用标准的软件实现往来管理,这样更会符合财务的事后统计分析需求.
于此,采用CDC功能实现SQL动态数据的新增,更新和删除动作.
1 对客户账套开启CDC功能
注意:仅在SQLServer2008(含)以后的企业版、开发版和评估版中可用。
在开启CDC功能前,记得要把sqlserver的代理服务器打开。、
EXEC sys.sp_cdc_enable_db
2 对账套中需要同步的基础资料和业务数据表开启CDC功能
示例:
EXEC sys.sp_cdc_enable_table
@source_schema ='dbo'
,@source_name='Bas_部门信息表'
,@role_name=null
,@capture_instance=NULL
,@supports_net_changes=1
,@index_name=null
,@captured_column_list=null
,@filegroup_name=default
,@allow_partition_switch=1
GO
3 建立存储过程便于后面调用执行数据同步
示例:
CREATE PROC PROC_部门信息表
@operation INT,
@部门编号 VARCHAR(12),
@部门名称 VARCHAR(50)
AS
IF @operation=2
AND NOT EXISTS (SELECT DAA001 FROM VNSDSB..TPADAA WHERE DAA001=@部门编号)
BEGIN
insert into VNSDSB..TPADAA
(DAA001, DAA002, DAA003, DAA004, DAA005, DAA006, DAA007, DAA008, DAA009, DAA010, DAA011, DAA901, DAA902, DAA903, DAA904, DAA905, DAA960, DAA961, DAA962, DAA963, DAA964, DAA965, DAA980, DAA981, DAA982, DAA983, DAA984, DAA985)
VALUES( @部门编号,@部门名称,'',@部门编号,'','','','','','F','F','DS',GETDATE(),'DS','',1,'','','','','','',0,0,0,0,0,0)
END
ELSE IF @operation=1
BEGIN
DELETE FROM VNSDSB..TPADAA WHERE DAA001=@部门编号
END
ELSE IF @operation=4
BEGIN
UPDATE VNSDSB..TPADAA SET DAA002=@部门名称 FROM VNSDSB..TPADAA WHERE
DAA001=@部门编号
END
GO
4 建立作业计划,实现定时调用存储过程,同步数据
实现效果如下:
至此,基本完工,当然还要进一步优化,以达到各方数据完全达到客户需求.