You have multiple accounts
Choose the account you want to sign in with.

Symptomer

Når du synkroniserer Microsoft Dynamics AX med en tabell i Microsoft SQL Server, får du følgende feilmelding:

Kan ikke utføre en data definition language-kommando på table_name. SQL-databasen har utstedt en feil.

I tillegg logges en feilmelding som ligner på følgende i programloggen Event Viewer på Application Object Server (AOS)-server:

Objektserveren 01: Databasen rapporterte (økt 1 (Admin)): lage UNIK indeks [Microsoft] [ODBC SQL Server Driver] [SQL Server] ble avsluttet fordi en duplikatnøkkel ble funnet for objektnavn ' dbo. TABLE_NAME' og indeksnavnI_xxxIDX. Duplisert nøkkelverdi er (verdi1, verdi2). SQL-setningen er: "lage UNIK indeks I_xxxIDX videre table_name (Kolonne1,Kolonne2)"

Obs!

  • Plassholder for table_name er en plassholder for navnet på tabellen.

  • Plassholder for I_xxxIDX er en plassholder for navnet på unik indeks.

  • Plassholderen verdi1 og verdi2 plassholderen er plassholdere for like nøkkelverdier.

  • Plassholderen Kolonne1 og Kolonne2 plassholderen er plassholdere som representerer kolonnenavnene.

Årsak

Dette problemet oppstår fordi SQL Server-databasen inneholder like poster basert på de unike indeksene som Microsoft Dynamics AX forsøker å opprette eller prøver å opprette på nytt.

Oppløsning

Forsiktig Før du fjerner eventuelle data fra Microsoft Dynamics AX-databasen, bør du forstå hvorfor den nye, unike indeksen er lagt til. Microsoft Dynamics AX blir vanligvis legge til eller fjerne indeksene når det er endringer i lisensnøkler eller når du legger til eller fjerner moduler i konfigurasjonsskjemaet av Microsoft Dynamics AX. Indekser kan i tillegg bli lagt når utviklere legger til indeksene til applikasjonsobjekttreet (AOT) eller via vanlig oppgraderingsprosessen. Hvis du ikke er sikker på at grunnen til at indeksen er lagt til, bør du ikke fjerne data.

Obs! Før du følger instruksjonene i denne artikkelen, må du kontrollere at du har en fullstendig sikkerhetskopi av databasen som kan gjenopprettes hvis det oppstår et problem.

Hvis du vil løse dette problemet, kan du enten fjerne de like postene fra tabellen slik at den unike indeksen skal legges til eller finne ut om den unike indeksen bør legges til. Følg disse trinnene:

  1. På AOS-serveren, klikker du Start, klikk Kjør, Skriv inn eventvwr.exeog klikk deretter OK.

  2. Velg noden programmet i konsolltreet Hendelsesliste .

  3. Vis duplikatnøkkelfeil som vises først i programloggen. Hvis du vil gjøre dette, kan du dobbeltklikke det feil og kilde: Dynamics Server 0x element som vises først i Detaljer-ruten.

    Obs! X er en plassholder for forekomsten av AOS-tjenesten returnerer feilmeldingen.

  4. Basert på feilmeldingen som vises, erstatte indeksnavnet, tabellnavnet og kolonnenavnet med verdiene i feilmeldingen i SQL Server-skript som du kan bruke i neste trinn.

  5. Når verdiene er erstattet fra faktiske feilen, kjører du følgende SQL Server-skript i SQL Query Analyzer eller SQL Server Management Studio.

    select count(*) as Duplicate_Record_Count, <column1>, <column2> from <table_name> group by <column1>, <column2> having count(*) > 1 

    Obs! Erstatter du plassholderne med riktig informasjon når du kjører skriptet.

  6. For hver post som returneres i trinn 5, finnes minst en duplikatoppføring. Duplicate_record_count -kolonnen viser hvor mange poster dupliseres ved hjelp av disse indeksverdiene. Hvis det finnes like poster, må du bestemme om postene vil bli fjernet for å legge til en unik indeks, eller om den unike indeksen skal legges. Hvis du vil finne alle like poster, kan du kjøre skriptet nedenfor.

    select Distinct a.* from <table_name> a join (select <column1>, <column2> from <table_name> group by <column1>, <column2> having count(*) > 1) b
    on a.<column1> = b.<column1> and a.<column2> = b.<column2>

    Notater

    • Erstatter du plassholderne med riktig informasjon før du kjører skriptet. Du kan hente informasjon fra feilmeldingen.

    • Recid -kolonnen kan brukes som en nøkkel-ID for hver tabell til å velge eller fjerne poster.

    • Hvis du er usikker på hvordan du kan kjøre skriptene eller tolke resultatene, kan du arbeide sammen med en kvalifisert databaseadministrator (DBA) og en tekniker for å bestemme hvordan du skal behandle resultatene.

  7. Gjenta trinn 5 og 6 til skriptet i trinn 5 returnerer en null-verdi som angir at det ikke er flere like verdier, og at det kan legges til den unike indeksen.

  8. Hvis det er mer enn én entydig indeks må legges til, vise neste like viktige feil i tilfelle visningsprogrammet logg, og gjenta deretter trinn 4 til 7 inntil det er ingen flere like viktige feil i visningsprogrammet logg.

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Hvor fornøyd er du med språkkvaliteten?
Hva påvirket opplevelsen din?

Takk for tilbakemeldingen!

×