WEB开发网
开发学院数据库MSSQL Server 如果利用SQL Server 2008新特性之CDC 阅读

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

 2008-04-16 09:53:39 来源:WEB开发网   
核心提示: 你可以通过执行以下T-SQL脚本来禁用某个表的CDC:以下是引用片段:execsys.sp_cdc_disable_table@source_schema='dbo',@source_name='customer',@capture_instance=

你可以通过执行以下T-SQL脚本来禁用某个表的CDC:

以下是引用片段:
  execsys.sp_cdc_disable_table
  @source_schema='dbo',
  @source_name='customer',
  @capture_instance='dbo_customer'--or'all'

你可以通过执行以下T-SQL脚本来禁用整个数据库的CDC:

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

禁用表或数据库水平的CDC将会删除在其启用时创建的表、工作、存储过程和函数等对象。

现在我们已经为一个数据库和表启用了CDC,我们现在来继续看演示例子:

CDC演示

我们会通过以下步骤来演示CDC的功能:

对customer表进行一些插入、更改和删除的活动。

显示用来查询改动的T-SQL代码实例

执行以下T-SQL脚本来对customer表进行插入、更改和删除:

以下是引用片段:
  insertcustomervalues('abccompany','md')
  insertcustomervalues('xyzcompany','de')
  insertcustomervalues('xoxcompany','va')
  updatecustomersetstate='pa'whereid=1
  deletefromcustomerwhereid=3

下面的查询会显示上述改动的记录:

以下是引用片段:
  declare@begin_lsnbinary(10),@end_lsnbinary(10)
  --getthefirstLSNforcustomerchanges
  select@begin_lsn=sys.fn_cdc_get_min_lsn('dbo_customer')
  --getthelastLSNforcustomerchanges
  select@end_lsn=sys.fn_cdc_get_max_lsn()
  --getnetchanges;groupchangesintherangebythepk
  select*fromcdc.fn_cdc_get_net_changes_dbo_customer(
  @begin_lsn,@end_lsn,'all');
  --getindividualchangesintherange
  select*fromcdc.fn_cdc_get_all_changes_dbo_customer(
  @begin_lsn,@end_lsn,'all');

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

Tags:如果 利用 SQL

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