2016-11-25 112 views
0

我尝试使用cdc,并且我正在执行这些步骤。函数sys.fn_cdc_get_max_lsn()返回null

  1. EXEC sys.sp_cdc_enable_db - 启用DB
  2. EXEC sys.sp_cdc_enable_table @source_schema = N'DW', @source_name = N'APIprocess', @role_name = NULL, @supports_net_changes = 0 --enable表
  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') - 尝试什么变化

当我执行第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()返回null,并在那是我的问题。 总之,我需要知道为什么该函数返回null而不是二进制。 谢谢。

回答

2

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