2016-11-25 4 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_

Тогда я искал ответ и я finded некоторые ответы, но в не любая проблема была произведена, потому что функция sys.fn_cdc_get_max_lsn() возвращают нуль, и в этом моя проблема. Итак, мне нужно знать, почему эта функция возвращает null вместо двоичного. Спасибо.

ответ

2

Проблема заключалась в том, что у меня нет активной службы агента сервера Sql, после этого я активно, CDC начал отслеживать операции над таблицей.