如果利用SQL Server 2008新特性之CDC

http://tech.ddvip.com   2008年04月16日    社区交流

内容摘要:Change Data Capture(CDC)是SQL Server 2008的一个新特性,它可以记录SQL Server表的插入、更新和删除等表修改活动。利用该新特性的一个很好的例子就是对某个数据仓库进行定期更新。

以下是引用片段:
  declare@rcint
  exec@rc=sys.sp_cdc_enable_db
  select@rc
  --newcolumnaddedtosys.databases:is_cdc_enabled
  selectname,is_cdc_enabledfromsys.databases

  如果成功启用CDC,存储过程sys.sp_cdc_enable_db就会返回0值,如果失败,就会返回!值。你可以通过在sys.databases 表里查看新增列is_cdc_enabled 来查询CDC是否启用成功。如果成功启用CDC,你会看到查询结果为1,如果失败了,你就会看到查询结果为1。

  下一步就是指定你想要启用CDC的具体表。我们现在来新建一个名为customer的表:

以下是引用片段:
  createtabledbo.customer
  (
  idintidentitynotnull
  ,namevarchar(50)notnull
  ,statevarchar(2)notnull
  ,constraintpk_customerprimarykeyclustered(id)
  )

  执行以下系统存储过程来为customer表启用CDC:

以下是引用片段:
  execsys.sp_cdc_enable_table
  @source_schema='dbo',
  @source_name='customer',
  @role_name='CDCRole',
  @supports_net_changes=1
  selectname,type,type_desc,is_tracked_by_cdcfromsys.tables

  你必须是db_owner固定数据库角色的成员才能够执行上述的系统存储过程,而且必须运行SQL Agent。系统存储过程sys.sp_cdc_enable_table有许多参数,我们来一个一个介绍(只有前三个参数是必须的,其他参数是可选的,下面只列出了我们使用过的参数):

  @source_schema是你想要启动CDC的表的Schema名称

来源:IT专家网    作者:Echo    责编:豆豆技术应用

正在加载评论...