函数 sys.fn_cdc_get_max_lsn() returns 空

Function sys.fn_cdc_get_max_lsn() returns null

我正在尝试使用 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--启用table
  3. 在引用的table中插入和更新

  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') -- 尝试获取更改

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

An insufficient number of arguments were supplied for the procedure or function cdc.fn_cdc_get_all_changes_

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

问题是我没有激活 Sql 服务器代理的服务,在我激活之后,CDC 开始跟踪 table 上的操作。