我喜欢在SQL Server 2017(v14.0.3030.27)的同一表中添加更改跟踪和更改数据捕获。当我启用变更跟踪时,它也起作用,当我启用变更数据捕获时,它也能很好地工作。
但是当我在同一张表中同时启用这两个功能时,我没有获得更改数据捕获的值。看不到任何文档这么说。
我的计划是使用变更跟踪提取变更,并从变更数据捕获表中获取详细信息,有什么想法吗?
答案 0 :(得分:0)
给出您的额外信息“但我的目标是每分钟(如果可能的话,是每秒)轮询一个小表”,我建议使用SqlDependency
在数据更改时得到通知,而不是连续轮询。
SqlDependency非常适用于ASP.NET缓存方案 应用程序或中间层服务需要保留某些信息 缓存在内存中。 SqlDependency允许您接收通知 当数据库中的原始数据更改时,缓存可以 刷新。
要建立依赖关系,您需要关联一个SqlDependency对象 到一个或多个SqlCommand对象。要接收通知,您需要 订阅OnChange事件。有关的更多信息 创建通知查询的要求,请参阅使用 查询通知。
警告:
SqlDependency设计用于ASP.NET或中间层 服务器数量相对较少的服务 对数据库有效的依赖项。它不是为使用而设计的 在客户端应用程序中,成百上千的客户端 计算机将为单个对象设置SqlDependency对象 数据库服务器。