处理SSIS 2008中的变更数据捕获
2009-06-16 10:30:13 来源:WEB开发网变更数据捕获(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提供的额外字段:
更多精彩
赞助商链接