2016-11-25 169 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開始跟蹤表上的操作。