数据库专家答疑目录

  |  手机版

收藏网站

投稿QQ:1745232315

IT专家网,汇聚专业声音 解析IT潮流 IT专家网,汇聚专业声音 解析IT潮流

网络

专家视点在现场环球瞭望
IT专家网 > 数据库子站 > 数据库专家答疑目录

如何处理SSIS 2008中的变更数据捕获

作者:唐小若出处:IT专家网论坛2009-06-12 08:00

  专家解答

  变更数据捕获(CDC)是SQL Server 2008企业版本中的一个新功能,可以用它来跟踪对表的所有插入、更新和删除操作。一个SQL Server集成服务(SSIS)程序包是配置带有DCD数据的审计表的最佳选择。让我们先讨论一个这样的情形然后介绍相应的解决方法。

  假设我们想把所有对我们客户表的变更存储到customer_audit表中。我们将写一个SSIS程序包来查询CDC数据然后把它复制到customer_audit表中。我们选择按照需求或者按照安排(例如,一个SQL代理任务)运行SSIS程序包。每次我们运行SSIS程序包,我们都想获得上次我们运行程序包后的所作的任何变更。

  客户表

  我们使用下面的客户表:

  

     create table dbo.customer (

  customer_id int identity primary key not null

  , name nvarchar(50) not null

  , sales_rep nvarchar(50) not null

  , region nvarchar(50) not null

  , credit_limit int not null

  )

  我们使用下面的customer_audit表来存储对客户表的变更:

  

      create table dbo.customer_audit (

  customer_audit_id int identity primary key not null

  , customer_id int not null

  , name nvarchar(50) not null

  , sales_rep nvarchar(50) not null

  , region nvarchar(50) not null

  , credit_limit int not null

  , effective_date datetime not null

  , __$start_lsn binary(10) not null

  , __$seqval binary(10) not null

  , __$operation int not null

  , __$update_mask varbinary(128) not null

  )

  customer_audit表包括客户表的每个字段,也包括下面由CDC提供的额外字段:

  effective_date将由cdc.lsn_time_mapping表(稍后介绍)配置。它是更改源表的事务的日期和时间。

相关文章

关键词: 技巧,环球瞭望

责任编辑:包春林

专题推荐

原创文章

微博互动

白皮书

网警备案