SQL Server的表的更改跟踪和更改数据捕获同时

时间:2018-10-03 03:53:53

标签: sql-server database change-tracking change-data-capture

我喜欢在SQL Server 2017(v14.0.3030.27)的同一表中添加更改跟踪和更改数据捕获。当我启用变更跟踪时,它也起作用,当我启用变更数据捕获时,它也能很好地工作。

但是当我在同一张表中同时启用这两个功能时,我没有获得更改数据捕获的值。看不到任何文档这么说。

我的计划是使用变更跟踪提取变更,并从变更数据捕获表中获取详细信息,有什么想法吗?

1 个答案:

答案 0 :(得分:0)

给出您的额外信息“但我的目标是每分钟(如果可能的话,是每秒)轮询一个小表”,我建议使用SqlDependency在数据更改时得到通知,而不是连续轮询。

  

SqlDependency非常适用于ASP.NET缓存方案   应用程序或中间层服务需要保留某些信息   缓存在内存中。 SqlDependency允许您接收通知   当数据库中的原始数据更改时,缓存可以   刷新。

     

要建立依赖关系,您需要关联一个SqlDependency对象   到一个或多个SqlCommand对象。要接收通知,您需要   订阅OnChange事件。有关的更多信息   创建通知查询的要求,请参阅使用   查询通知。

警告:

  

SqlDependency设计用于ASP.NET或中间层   服务器数量相对较少的服务   对数据库有效的依赖项。它不是为使用而设计的   在客户端应用程序中,成百上千的客户端   计算机将为单个对象设置SqlDependency对象   数据库服务器。