2

我正在尝试在我的 sql 数据库中使用 CDC,我使用存储过程将数据从临时 CDC 表移动到新表。我还移动了 Start_lsn 标记。在新表中,我尝试使用 fn_cdc_map_lsn_to_time 将 lsn 映射到时间,对于某些记录,它返回 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

有什么解释吗?

谢谢

4

1 回答 1

3

我找到了答案,我只想添加它以作记录。

这里的问题是我将记录从 CDC 表移动到我自己的表中以防止它们被删除。

fn_cdc_map_lsn_to_time 使用系统表将 LSN 从 cdc 表映射到时间戳。一段时间后,这些记录将被删除,这就是为什么一些记录正确映射到时间的原因,因为它们是最近添加的,

但是旧的没有映射,因为它们已经被删除了。

于 2014-02-23T19:57:01.043 回答