如果利用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='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');
更多精彩
赞助商链接