在 SQL 中它很容易,因为它支持 binary(10) LSN 值进行比较:
SELECT *, __$start_lsn, __$seqval
FROM cdc.fn_cdc_get_all_changes_dbo_sometable(@startLsn, @endLsn, 'all update old')
WHERE __$seqval > @seqval
ORDER BY __$start_lsn, __$seqval
在 C# 中更难:
byte[] mySeqval = ...
foreach(var row in cdcData)
{
if(row.seqval > mySeqval) // Cannot perform this
...
}
是否可以将 LSN / SeqVal 值转换为可以轻松比较的数字?这些大小为 10 个字节(80 位)。
我的项目在 .Net 3.5 中