SqlException mit ‚XPKLocalizedLabel‘ bei CRM-Organisationsimport

Beim einem Import bzw. der Migration einer Organisationsdatenbank aus CRM 4.0 nach CRM 2011 (DE nach DE) trat der folgende Fehler auf:

System.Data.SqlClient.SqlException: Verletzung der PRIMARY KEY-Einschränkung ‚XPKLocalizedLabel‘. Ein doppelter Schlüssel kann in das MetadataSchema.LocalizedLabel-Objekt nicht eingefügt werden.

(System.Data.SqlClient.SqlException: Violation of PRIMARY KEY constraint ‚XPKLocalizedLabel‘. Cannot insert duplicate key in object ‚MetadataSchema.LocalizedLabel‘.)

Bei der Ursachenforschung und Recherche im Netz wurde ich recht zügig fündig: Allgemeine Ursache ist ein Eintrag mit einem Languagecode in der Tabelle MetadataSchema.LocalizedLabel, der vom Quell-/Ziel-Languagecode der Bereitstellung abweicht.

SELECT *
FROM MetadataSchema.LocalizedLabel
WHERE (LanguageId <> 1031 )

Die Korrektur mit dem korrekten Languagecode des problematischen Eintrags ist bereits ausreichend, um das Problem zu beheben.

Im konkreten Fall handelte es sich um den Eintrag mit ObjectID b1c70485-ba33-4c5f-8710-5446e3f68ca7 – ich vermute der Eintrag wurde mit einem der jüngsten CRM 4.0 Update Rollups hinzugefügt.

SELECT *
FROM MetadataSchema.LocalizedLabel
WHERE
(ObjectId = ‚b1c70485-ba33-4c5f-8710-5446e3f68ca7‘)

Über Thomas Roschinsky
Software Engineer | .NET | SharePoint | Dynamics CRM | BI | C# | C/C++

6 Responses to SqlException mit ‚XPKLocalizedLabel‘ bei CRM-Organisationsimport

  1. Eusebio Gimenez sagt:

    Hallo:
    Mein Deutsch is sehr schlecht und darum kann ich nicht die Korrektur verstehen.
    kannst du bitte es in english schreiben ?

    Danke.

    Eusebio

    • Hi Eusebio,

      the resolution for this specific problem was in my case quite easy: open the CRM database, take a close look into the table with the name MetadataSchema.LocalizedLabel and try to find the rows where the LanguageId is not equal to the usual LanguageId used within your organization.
      I found one single row (ObjectId = ‚b1c70485-ba33-4c5f-8710-5446e3f68ca7‘) and in that row I just set the „wrong“ LanguageId to the LanguageId I use in my organization. Problem solved. Be sure to make a backup of all your databases playing around with.

      Hope this helps,
      Thomas

  2. Grote, Sebastian sagt:

    Super! Genau diese Info habe ich gesucht! 1000x Danke dafür!!!🙂

  3. Martin sagt:

    Danke, echt sehr, sehr hilfreichender Hinweis! ->Bookmark🙂

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: