如果利用SQL Server 2008新特性之CDC
http://tech.ddvip.com 2008年04月16日 社区交流
内容摘要:Change Data Capture(CDC)是SQL Server 2008的一个新特性,它可以记录SQL Server表的插入、更新和删除等表修改活动。利用该新特性的一个很好的例子就是对某个数据仓库进行定期更新。
你可以通过执行以下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');
来源:IT专家网 作者:Echo 责编:豆豆技术应用
- SQL Server 2008 教程
- SQL Server 2005 教程
- SQL Server 安全设置
- SQL Server 故障解决
- SQL Server 安装配置
- SQL Server 备份恢复
- SQL Server 性能调优
- SQL Server 存储过程
- SQL Server 函数
- SQL Server 事务
- SQL Server 查询
- SQL Server 索引
- SQL Server 入门教程
- SQL Server 数据类型
- SQL Server 数据库表
- SQL Server T-SQL
- SQL Server 语句
- SQL Server 死锁
- SQL Server 加密
- SQL Server 数据库连接
- SQL Server 数据仓库
- SQL Server 数据库管理
- 更多SQL Server 专题>>>