我尝试使用cdc,我正在执行这些步骤。
EXEC sys.sp_cdc_enable_db
- 启用数据库EXEC sys.sp_cdc_enable_table
@source_schema = N'DW',
@source_name = N'APIprocess',
@role_name = NULL,
@supports_net_changes = 0
- 启用表格在推荐表中插入和更新
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()返回null,这就是我的问题。 总之,我需要知道为什么该函数返回null而不是二进制。 感谢。
答案 0 :(得分:4)
问题在于我没有激活Sql server Agent的服务,在我激活之后,CDC开始跟踪桌面上的操作。