函数sys.fn_cdc_get_max_lsn()返回null

时间:2016-11-25 13:21:40

标签: sql-server change-data-capture

我尝试使用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') - 尝试进行更改

  5. 当我执行第4步时抛出此错误:

      

    为程序或函数提供的参数数量不足cdc.fn_cdc_get_all_changes _

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

1 个答案:

答案 0 :(得分:4)

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