1
votes

We are doing CRM data migration in order to keep two CRM Systems in Sync. And removing history data from Primary CRM. Target CRM is been created by taking Source as base. Now while we migrate the data we keep guids of record, same in order to maintain data integrity. This solution expects that in target systems that GUID must be available to assign to new record. There are no new records created directly in target system except Emails, that too very low in number. But apart from that there are ways in which system creates its guids, e.g when we move newly created entity to target solution using Solution it will not maintain the GUID of entity and attributes and will create its own, since we do not have control on this. Also some of the records which are created internally will also get created by platform and assigned a new GUID. Now if we do not have control over guid creation in target system(Although number is very small), i fear of the situation where Source System has guid which target has already consumed!! And at time of data migration it will give errors. My Question is there any possibility that above can happen? because if that happens to us whole migration solution will loose its value.

1
If you are doing a migration, why not use the old guids when you insert? But to answer your question, it's almost impossible.Jacob H

1 Answers

3
votes

SQL Server's NEWID() generates a 128-bit ID. All IDs generated on the same machine are guaranteed to be unique but because yours have been generated across multiple machines, there's no guarantee.

That being said, from this source on GUIDs:

...for there to be a one in a billion chance of duplication, 103 trillion version 4 UUIDs must be generated.

So the answer is yes there is a chance of collision, but it's so astromonically low that most consider the answer to effectively be no.