函数 sys.fn_cdc_get_max_lsn() returns 空
Function sys.fn_cdc_get_max_lsn() returns null
我正在尝试使用 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
--启用table
在引用的table中插入和更新
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() return 为空,这就是我的问题。
总之,我需要知道为什么那个函数 return null 而不是二进制。
谢谢。
问题是我没有激活 Sql 服务器代理的服务,在我激活之后,CDC 开始跟踪 table 上的操作。
我正在尝试使用 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
--启用table在引用的table中插入和更新
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() return 为空,这就是我的问题。 总之,我需要知道为什么那个函数 return null 而不是二进制。 谢谢。
问题是我没有激活 Sql 服务器代理的服务,在我激活之后,CDC 开始跟踪 table 上的操作。