我正在尝试在我的sql数据库中使用CDC,我使用存储过程将数据从临时CDC表移动到新表。我还移动了Start_lsn标记。在新表中,我尝试使用fn_cdc_map_lsn_to_time将lsn映射到time,对于某些记录,它返回null,而对于其他记录,它返回正确的时间,这是一个示例:
NULL 0x000034D5000002F80001
2014-01-16 00:38:39.377 0x0000350F000006D70001
NULL 0x00003513000003BA0001 2 0x3FFFFF
2014-01-18 02:00:05.320 0x0000351E000009FA0001 2 0x3FFFFF
有没有解释。
谢谢
答案 0 :(得分:3)
我找到了答案,我只想将其添加到记录中。
这里的问题是我将记录从CDC表移动到我自己的表中,以防止它们被删除。
fn_cdc_map_lsn_to_time使用系统表将LSN从cdc表映射到时间戳。一段时间后,这些记录将被删除,这就是为什么某些记录由于最近添加而正确映射到时间的原因,
但旧的未映射,因为它们已被删除。