2

我正在尝试使用 cdc,并且我正在按照这些步骤操作。

  1. EXEC sys.sp_cdc_enable_db -- 启用数据库
  2. EXEC sys.sp_cdc_enable_table @source_schema = N'DW', @source_name = N'APIprocess', @role_name = NULL, @supports_net_changes = 0--启用表
  3. 在引用的表中插入和更新

  4. DECLARE @Begin_LSN BINARY(10), @End_LSN BINARY(10) SET @Begin_LSN =sys.fn_cdc_get_min_lsn('DW_APIprocess') SET @End_LSN = sys.fn_cdc_get_max_lsn() SELECT @Begin_LSN, @End_LSN, N'all'; SELECT * FROM cdc.fn_cdc_get_all_changes_DW_APIprocess( @Begin_LSN , @End_LSN , 'all')-- 尝试得到改变

当我执行第四步时抛出这个错误:

为过程或函数 cdc.fn_cdc_get_all_changes_ 提供的参数数量不足

然后我搜索了一个答案,我找到了一些答案,但没有产生任何问题,因为函数 sys.fn_cdc_get_max_lsn() 返回 null,这就是我的问题。总之,我需要知道为什么该函数返回 null 而不是二进制文件。谢谢。

4

1 回答 1

12

问题是我没有激活 Sql server Agent 的服务,在我激活之后,CDC 开始跟踪表上的操作。

于 2016-11-25T16:31:30.623 回答