“更改跟踪(Change Tracking)”和“变更数据捕获(Change Data Chapture)”捕获和记录用户表的DML更改(插入、更新和删除操作),为某些有特殊需求的应用程序服务。
(一)变更数据捕获(可查询历史数据)
企业版功能
变更数据捕获使用异步进程读取事务日志,获取DML更改实际数据做为数据捕获的结果。在捕获结果中,还包含更改相关的一些信息(例如更改的操作类型、更新操作影响的列等)。
应用程序可以从捕获结果中获取DML更改的全部数据,而无需查询数据变更的原始表。
无法对系统数据库和分发数据库启用变更数据捕获。
变更数据捕获的更改数据源为 SQL Server 事务日志。 在将插入、更新和删除应用于跟踪的源表时,将会在日志中添加说明这些更改的项。 日志用作变更数据捕获进程的输入来源。它会读取日志,并在跟踪的表的关联更改表中添加有关更改的信息。
(二)更改跟踪(与数据更改同步)
所有版本均具有的功能
更改跟踪捕获表的数据行更改这一行为,但不会捕获更改的具体数据。捕获的结果包含表的主键及相关的跟踪信息(例如更改的操作类型、更新操作影响的列等)。
应用程序可以利用这个捕获的结果来确定表的最新更新,并可以关联原始来来获取最新的数据。
更改跟踪是一种轻量型解决方案,它为应用程序提供了一种有效的更改跟踪机制。
参考资料:
初探 SQL Server 2008 中的更改跟踪与变更数据捕获
http://blog.csdn.net/zjcxc/article/details/3975644
关于变更数据捕获 (SQL Server)
http://technet.microsoft.com/zh-cn/library/cc645937.aspx
关于更改跟踪 (SQL Server)