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