如果利用SQL Server 2008新特性之CDC
2008-04-16 09:53:39 来源:WEB开发网@source_name是你想要启动CDC的表名称
@role_name 是用来决定一个用户是否能够读取CDC数据的数据库角色;如果这个角色不存在,会创建出一个角色。你可以为这个角色增加用户;你只需要增加还不是db_owner固定数据库角色的成员的用户到这个角色中。
@supports_net_changes 决定你是否能够把多个改动总结到一个改动记录里;参数值设置为1即允许,设置为0即为不允许。
@capture_instance是你给这个CDC实例起的名称;你可以为一个表设置两个实例。
@index_name是用于识别源表的行的一个唯一索引的名称;如果源表有主键,你可以指定NULL值。
@captured_column_list是你想要启动CDC的列名的列表,各列名以逗号分隔;你可以指定NULL值来启用所有列。
@filegroup_name让你可以指定用于存储CDC改动表的FILEGROUP。
@partition_switch让你可以指定是否允许执行ALTER TABLE SWITCH PARTITION命令;即允许你启用分区(TRUE或FALSE)。
在表sys.tables里有一列名为is_tracked_by_cdc的新增列;你可以查询它来确定某个表是否启动了CDC。
在数据库或表的水平上启用CDC会在启用了CDC的数据库里创建某些表、任务、存储过程和函数。这些对象会被创建在名为cdc的schema里,同时还会创建出一个cdc用户。你会看到一条信息说创建了两个SQL Agent任务:任务cdc.sql2008demo_capture会扫描数据库事务处理日志来查询已经启用CDC的表,而任务cdc.sql2008demo_cleanup则会定期清除改动表。命名规则是cdc.[databasename]_task。我们会在下面的例子里使用某些被创建的schema对象。你可以通过允许以下T-SQL脚本来查看创建的schema对象:
以下是引用片段:
selecto.name,o.type,o.type_descfromsys.objectso
joinsys.schemassons.schema_id=o.schema_id
wheres.name='cdc'
更多精彩
赞助商链接