Функция sys.fn_cdc_get_max_lsn() возвращает ноль

Я пытаюсь использовать 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') - Попробуй получить изменения

И когда я выполняю 4-й шаг, выдают эту ошибку:

Недостаточное количество аргументов было предоставлено для процедуры или функции cdc.fn_cdc_get_all_changes_

Затем я искал ответ и нашел некоторые ответы, но ни в одном из них проблема не возникла, потому что функция sys.fn_cdc_get_max_lsn() возвращает ноль, и в этом моя проблема. В итоге мне нужно знать, почему эта функция возвращает ноль вместо двоичного файла. Благодарю.

1 ответ

Решение

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

Другие вопросы по тегам