加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 2008的CDC功能

发布时间:2016-09-06 03:23:19 所属栏目:MsSql教程 来源:站长网
导读:CDC(Change Data Capture)通过对事务日志的异步读取,记录DML操作的发生时间、类型和实际影响的 数据变化,然后将这些数据记录到启用CDC时自动创建的表中。通过
CDC(Change Data Capture)通过对事务日志的异步读取,记录DML操作的发生时间、类型和实际影响的 数据变化,然后将这些数据记录到启用CDC时自动创建的表中。通过cdc相关的存储过程,可以获取详细的 数据变化情况。由于数据变化是异步读取的,因此对整体性能的影响不大,远小于通过Trigger实现的数 据变化记录。

下面我用一个实例讲解这个功能。该功能主要在ETL解决方案中比较有用。

USE AdventureWorksDW;
GO
EXECUTE sys.sp_cdc_enable_db; --启用数据库对CDC的支持
GO 
EXEC sys.sp_cdc_enable_table 'dbo', 
'FactInternetSales', @role_name = NULL, @supports_net_changes =0; --启用某个表对CDC的

支持
GO 
--这里的supports_net_changes指的是是否支持所谓的净更改,即过滤掉重复的 
SELECT name, is_tracked_by_cdc FROM sys.tables 
WHERE name LIKE ('fact%'); 
INSERT INTO FactInternetSales
VALUES

(484,1127,1139,1134,18759,1,100,6,'SO75124',1,1,1,21.9800,21.9800,0,0,8.2205,8.2205,21.9800,

1.7584,0.5495,NULL,NULL); 
INSERT INTO FactInternetSales 
VALUES

(486,1127,1139,1134,18759,1,100,6,'SO75125',1,1,1,21.9800,21.9800,0,0,8.2205,8.2205,21.9800,

1.7584,0.5495,NULL,NULL); 
UPDATE FactInternetSales 
SET PromotionKey = 2  
WHERE SalesOrderNumber = 'SO75124'; 
DELETE FROM FactInternetSales WHERE SalesOrderNumber='SO75125' 
SELECT * FROM cdc.dbo_FactInternetSales_CT;  --这个表其实是在系统表里面

SQL Server 2008的CDC功能

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读