【发布时间】:2016-10-28 13:41:52
【问题描述】:
我们有一位开发人员去年离开了我们……他是一个很棒的人!作为一名 DBA,我非常喜欢有他加入团队! 但是我从他那里看到了这段代码:
when matched and
checksum(TARGET.Lead_ID, TARGET.Salesforce_id) <> checksum(SOURCE.Lead_ID,SOURCE.Salesforce_id)
or checksum(TARGET.Lead_ID, TARGET.CreatedById) <> checksum(SOURCE.Lead_ID,SOURCE.CreatedById)
or checksum(TARGET.Lead_ID, TARGET.Email) <> checksum(SOURCE.Lead_ID,SOURCE.Email)
or checksum(TARGET.Lead_ID, TARGET.LastModifiedById) <> checksum(SOURCE.Lead_ID,SOURCE.LastModifiedById)
or checksum(TARGET.Lead_ID, TARGET.ConvertedContactId) <> checksum(SOURCE.Lead_ID,SOURCE.ConvertedContactId)
or checksum(TARGET.Lead_ID, TARGET.ConvertedDate) <> checksum(SOURCE.Lead_ID,SOURCE.ConvertedDate)
or checksum(TARGET.Lead_ID, TARGET.ConvertedOpportunityId) <> checksum(SOURCE.Lead_ID,SOURCE.ConvertedOpportunityId)
or TARGET.IsConverted <> SOURCE.IsConverted
or checksum(TARGET.Lead_ID, TARGET.Mini_West_Local_Marketing__c) <> checksum(SOURCE.Lead_ID,SOURCE.Mini_West_Local_Marketing__c)
or checksum(TARGET.Lead_ID, TARGET.Valid_Leads__c) <> checksum(SOURCE.Lead_ID,SOURCE.Valid_Leads__c)
or checksum(TARGET.Lead_ID, TARGET.FE_Owner__c) <> checksum(SOURCE.Lead_ID,SOURCE.FE_Owner__c)
or checksum(TARGET.Lead_ID, TARGET.FE_Sales_Group__c) <> checksum(SOURCE.Lead_ID,SOURCE.FE_Sales_Group__c)
我知道校验和:“返回对表格的一行或表达式列表计算的校验和值。 CHECKSUM 旨在用于构建哈希索引。'。
但是,他为什么要在那里使用它?
注意:(这是代码的一部分,真正的“当匹配”子句有 100 列,源和目标都有 100 列……)
【问题讨论】:
标签: sql-server merge checksum