Ett felmeddelande visas när du tar bort en post i Microsoft Dynamics CRM: "fel: borttagning gick inte att rensa vissa tabeller"


Symptom


När du tar bort en post i Microsoft Dynamics CRM kan följande felmeddelande loggas i programloggen:
Händelsetyp: fel
Källa: MSCRMDeletionService
Händelsekategori: ingen

Händelse-ID: 16387
Datum: datum
Tid: tid
ÄR användare: saknas

Dator: datornamn
Beskrivning:
Fel: Det gick inte att rensa vissa tabeller med Borttagningstjänst.

Orsak


Det här problemet uppstår eftersom det finns en begränsning i tabellen enhet för den post som ska tas bort. Dessutom kan användare tar du bort posten inte har rättigheter att ta bort alla associerade poster.

Anta att du har behörighet att ta bort bara kontakter. Du försöker ta bort en kontakt som är associerad med tre fall. I Microsoft Dynamics CRM, är överlappande förhållandet mellan entiteten Kontakt och entiteten ärende inställd på "Ta bort alla." Kontaktposten ställs därför ta bort statusen i Microsoft Dynamics CRM-databasen. Men har du inte rättigheter att ta bort ärenden. Ta bort status anges därför inte på ärendeposter. När borttagning-tjänsten försöker ta bort kontaktposten blockerar villkoret att tas bort eftersom det finns tre befintliga ärenden som tilldelats till kontakten. Om du vill ta bort den här posten har, måste du ta bort de poster som orsakar konflikten restriktion.

Lösning


Följ instruktionerna för att lösa problemet.

Obs! Kontrollera att du har en fullständig säkerhetskopia av databasen som du kan återställa om ett problem uppstår innan du följer instruktionerna i den här artikeln.

Gör följande om du vill identifiera tabellen där tjänsten borttagningen misslyckas:
  1. På Microsoft Dynamics CRM-servern, klicka på Start, klicka på
    Kör, Skriv cmdoch klicka sedan på
    OK.
  2. Skriv katalogencrmdeletionservice.exe – runoncevid kommandotolken, och tryck sedan på RETUR.

    Obs! Som standard finns filen Crmdeletionservice.exe i enhet: \Program\Microsoft Dynamics CRM\server\bin katalog.

    Sedan visas ett meddelande som liknar följande:
    Kan inte städa upp följande tabeller: kampanj
    Obs! Tabellen som returneras i meddelandet är tabellen som tjänsten borttagningen misslyckades.
Följande exempel visar hur du löser det här problemet för tabellen kampanj.

Lös problemet för tabellen Kampanj, så här:
  1. Kör en sats i SQL Query Analyzer. Gör så här:
    1. Klicka på Start, peka på Alla program, peka på Microsoft SQL Serveroch klicka på Query Analyzer.
    2. Kör följande fråga mot den
      Organisationsnamn_MSCRM-databasen.

      Obs! Organisationsnamn är en platshållare för det faktiska organisationsnamnet.
      delete from Campaign where DeletionStateCode = 2
      Den här frågan returnerar ett meddelande som liknar följande:
      Ta bort uttrycket orsakade en konflikt med restriktionen COLUMN REFERENCE 'campaign_leads'. En konflikt uppstod i databasenOrganisationsnamn_MSCRM, tabell LeadBase, kolumn 'CampaignId'. Uttrycket har avslutats.
  2. Korrigera de poster som orsakar konflikten begränsningen genom att använda ett uttryck som liknar följande sats.
    Update LeadBase set CampaignId=null WHERE CampaignId IN (SELECT CampaignId FROM CampaignBase WHERE DeletionStateCode = 2)
    Obs! Tabellen och de fält som du använder i uttrycket beror på meddelandet som du fick i steg 1b tidigare i det här avsnittet. I det här exemplet anger du fältet CampaignId i tabellen LeadBase NULL om kampanjen har markerats för borttagning.
  3. Kör följande kommando för att kontrollera att alla tabeller har korrigerats.
    crmdeletionservice.exe –runonce 
    Om problemet kvarstår upprepar du steg 1 till 3 tidigare i det här avsnittet för att korrigera andra villkor.