jaczjill Asked: 2013-03-26 01:39:45 +0800 CST2013-03-26 01:39:45 +0800 CST 2013-03-26 01:39:45 +0800 CST 在变更数据捕获 (CDC) 中,为什么使用 lsn 而不是时间戳? 772 我正在学习在 SQL Server 2008 中使用 CDC,我已经读到 LSN 总是递增并且基于时间戳,所以为什么需要 LSN,如果它是从时间戳计算的,它可以用作所做更改的增量序列 ID。我相信lsn也会有其他用途。 sql-server-2008 change-data-capture 1 个回答 Voted Best Answer gbn 2013-03-26T01:50:32+08:002013-03-26T01:50:32+08:00 日期/时间值通常被认为不够独特。无论您如何定义它,都可能为相同的日期时间值发生 2 个操作。 在 SQL Server 2008 之前,最准确的值是四舍五入的 3.33 毫秒,datetime这确实是永恒的。datetime2解析为 100 纳秒,这也不够准确。 从另一个角度来看,时间是一个实数。无论您存储的时间有多准确,您的分辨率水平总会有一些舍入(在这种情况下,3.33 ms 或 100 ns) 使用LSN(即numeric (25,0))给出严格单调递增的明确整数值。它是一个自然数
日期/时间值通常被认为不够独特。无论您如何定义它,都可能为相同的日期时间值发生 2 个操作。
在 SQL Server 2008 之前,最准确的值是四舍五入的 3.33 毫秒,
datetime
这确实是永恒的。datetime2
解析为 100 纳秒,这也不够准确。从另一个角度来看,时间是一个实数。无论您存储的时间有多准确,您的分辨率水平总会有一些舍入(在这种情况下,3.33 ms 或 100 ns)
使用LSN(即
numeric (25,0)
)给出严格单调递增的明确整数值。它是一个自然数