WEB开发网
开发学院数据库MSSQL Server 处理SSIS 2008中的变更数据捕获 阅读

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

 2009-06-16 10:30:13 来源:WEB开发网   
核心提示: effective_date将由cdc.lsn_time_mapping表(稍后介绍)配置,它是更改源表的事务的日期和时间,处理SSIS 2008中的变更数据捕获(2), __$start_lsn是来自事务日志的日志序列编号, __$seqval提供一个事务内所有更改的一个顺序,那么你必须

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

__$start_lsn是来自事务日志的日志序列编号。

__$seqval提供一个事务内所有更改的一个顺序。

__$operation具有下面其中一个值:1=delete,2=insert,3=update(在值之前),4=update(在值之后)。

__$update_mask是一个位掩码,这里每个更改的字段都设置成1。

启用CDC

CDC需要在数据库级别以及你想跟踪变更的表上启用。CDC提供为每张表一个存储过程。下面是为我们的多个数据库和客户表启用CDC的示例脚本:

use mssqltips

go

exec sys.sp_cdc_enable_db

exec sys.sp_cdc_enable_table

@source_schema = N'dbo'

,@source_name = N'customer'

,@role_name = N'cdc_admin'

,@capture_instance = N'customer_all'

,@supports_net_changes = 1

,@index_name = NULL

,@captured_column_list = NULL

,@filegroup_name = NULL

上述脚本的要点是:

存储过程sys.sp_cdc_enable_db为当前的数据库启用CDC。

存储过程sys.sp_cdc_enable_table为一张表启用CDC。

为role_name参数创建一个数据库角色;这个角色的成员调用CDC数据。

capture_instance参数用来确定CDC数据;你的每张表可以有两个参数。

设置supports_net_changes成1来获得单行中的累积变更。

如果该表没有主码,那么你必须指定一个唯一索引。

你可以指定字段列表来跟踪或者NULL来跟踪所有的字段。

你可以为CDC文件指定一个文件组或者NULL来使用默认的设置。

上一页  1 2 3 4 5 6  下一页

Tags:处理 SSIS 变更

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接