SELECT BINARY_CHECKSUM('Clifton House, Thornaby Place, Teesdale South, Stockton-On-Tees, Cleveland, TS17 6SD')
SELECT BINARY_CHECKSUM('Clifton House, Teesdale South, Thornaby Place, Stockton-On-Tees, Cleveland, TS17 6SD')
SELECT BINARY_CHECKSUM('Glenfield Hospital, Groby Road, , Leicester, Leicestershire, LE3 9DZ')
SELECT BINARY_CHECKSUM('Glenfield Hospital, Groby Road, , Leicester, Leicestershire, LE3 9EJ')
看看上面的内容。即使文本存在差异,两对地址也会生成相同的校验和值。据我了解,虽然您不能保证 CHECKSUM 和 BINARY_CHECKSUM 对于任何随机内容都会有所不同,但它们应该有助于确定给定行中相对较小的更改。
有趣的是,这些值对恰恰证明了相反的情况。它们为非常相似的数据值生成相等的校验和值。事实上,这些是较大的(680,000 条记录)地址表中唯一重复的校验和值。
我有点担心我误解了生成更新时校验和的值?我是否必须通过逐个字段进行强力比较才能绝对确定检测到一行数据中的更改?
这些示例的原始数据位于 6 个独立的列中。为了清楚起见,我已将代码示例缩减到最小状态。