PowerObjects Blog 

for Microsoft Business Applications


Table Merge Error with Upgrading a 2011 Organization Database to CRM 2013


Table Merge Error with Upgrading a 2011 Organization Database to CRM 2013

In Microsoft Dynamics CRM 2013, there has been a significant change to the database structure in that there are no longer EntityBase and EntityExtensionBase tables. Now there is just one entity table for a given entity. With this change, those who are upgrading an existing organization will eventually need to go through the process of merging the Base and Extension tables—either at the time of upgrade or at a later date.

As a result of this change, one of the issues that comes up while importing a CRM 2011 organization database to a new 2013 deployment (using the Organization Import feature of the Deployment Manager) is a table merge error stating: "This may exceed that the architectural limits of Microsoft SQL Server, and the merge operation will fail."

The steps below will help you resolve this issue.

1. While importing an organization for upgrade to CRM 2013, the validation checks show the following error:
Table Merge Error

The fix is to decrease the number of columns in the source CRM system. This has to do with a view limitation in SQL server.

Note: Due to the architecture change, if you are hitting this limit 'by just a little bit', defer the table merge until later and try via the command line.

2. Cancel the import and defer the Table Merge in the following way, as noted in the CRM 2013 upgrade instructions:

How to Defer Table Merge

Install CRM, but do not upgrade any orgs.

Create a new reg key. Location: HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSCRMMergeBaseExtensionTables

Type: Dword (32-bit)

Value: 0

3. Restart import and complete.

4. At this point you need to find out what columns on that table can be deleted. Then you should be able to run the merge manually, as after the upgrade there will be a few less columns due to the new architecture of CRM 2013.

5. Follow the steps below using the merge tool that comes with the CRM 2013.

a. Set that registry key mentioned above in step 2 to 1 first (so CRM will run the merge).

b. Run the following statement at command prompt on CRM Front End server to merge the tables that have merge issues (the ones that stated issues in the import in step 1 above). Replace the names appropriately for highlighted parameters:

CrmMergeBaseAndExtensionTableTool /s:databaseservername /o:<databasename> /e:entityname  /log:c:crmmergetoollog.txt

c. Repeat step 2 for all the entity tables with merge issue. The error in the import from Deployment Manager might still remain. In this case, run the rest of the merge for the whole database with the following command:

CrmMergeBaseAndExtensionTableTool /s: databaseservername /o:< databasename > /log:c:crmmergetoollog.txt

This should take care of the merge error, and importing the database should go smoothly at this point.

PowerObjects encourages customers to complete this merge as quickly as possible. NOT completing this step in the upgrade process may prohibit future updates.

You can learn more about CRM 2013 features and functions or sign up for a CRM 2013 upgrade training on our website.

Happy CRM'ing!

Joe CRM
By Joe D365
Joe D365 is a Microsoft Dynamics 365 superhero who runs on pure Dynamics adrenaline. As the face of PowerObjects, Joe D365’s mission is to reveal innovative ways to use Dynamics 365 and bring the application to more businesses and organizations around the world.

5 comments on “Table Merge Error with Upgrading a 2011 Organization Database to CRM 2013”

  1. Dear JoeCRM.

    I have one database in my company that product,customers,sales,.... are into databae.

    I will merge database microsoft dynamics crm 2015 with my database company.

    how i work?

    i used this query for transaction record from database to crm database:

    MERGE INTO [CRMMSSQLCRM].CRM_MSCRM.dbo.AccountBase AS A

    USING [CRMMSSQLCRM].CY000601.dbo.AC_0101_N AS B

    ON A.AccountId = B.AccountId

    --A.AccountId= CONVERT (uniqueidentifier , convert (varbinary(16) , B.AccountId,1))

    WHEN MATCHED THEN

    UPDATE SET

    A.AccountId= CONVERT (uniqueidentifier , convert (varbinary(16) , B.AccountId,1)) ,

    A.AccountNumber=B.AccountNumber,

    A.Name=B.AccountName

    WHEN NOT MATCHED THEN

    INSERT (AccountId,AccountNumber,Name) VALUES (AccountId,AccountNumber,AccountName)

    WHEN NOT MATCHED BY SOURCE THEN

    DELETE ;

    --A.AccountId= CONVERT (uniqueidentifier , convert (varbinary(16) , B.AccountId,1))

    how?

    thnx.

    1. Hi,

      We highly recommend never doing a direct update or insert into the ms crm database. This is not officially approved and could have unintended consequences. Our recommendation is to use a 3rd party tool such as Scribe OR SSIS with the KingsWaysoft CRM Adapter. Using either of these tools you can write scripts to insert/update data without writing compiled code.

  2. hi joe,
    can u give me a step by step approach about the table merge while upgrading from 2011 to 2013.
    thanks in advance.
    Shraddha

    1. Hi Shraddha - In most of our upgrades we have left the default on were the upgrade automatically merges all the tables. We only need to do the manual merges if the database is very large and the amount of down time we can have is minimal.....then we need to do the reg key and at a later time we can merge table by table with this tool: CrmMergeBaseAndExtensionTableTool /s:databaseservername /o: /e:entityname /log:c:crmmergetoollog.txt

  3. Adding a comment to this old thread because it's still relevant for users upgrading from 2011. The reg key in the above article is incorrect, it should be:

    HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSCRM/MergeBaseAndExtensionTables

    (Note the "And" is missing in the article)

PowerObjects Recommends