Log på med Microsoft
Log på, eller opret en konto.
Hej
Markér en anden konto.
Du har flere konti
Vælg den konto, du vil logge på med.

Symptomer

Når du kører en opdatering på en tabel, der har et grupperet eller entydigt indeks, og opdateringen forekommer på en ikke-primær entydig kolonne, er registreringsposten for ændringer i strid med opdateringssætningen.

Antag f.eks., at en kolonne med navnet "kolonne1" er inkluderet i det grupperede eller entydige indeks. Når kolonneværdien ændres fra en større til en mindre værdi (f.eks. ændring af værdien fra 20 til 16), modtager tabellen til registrering af ændringer indsætningshandlingen før sletningen. Transaktionsloggen indsætter f.eks. rækkeposthandlingen, før handlingen slet række indsættes, eller "I" indsættes før "D".

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1116

19

I

NULL

NULL

5639485628

1116

20

D

NULL

NULL

5639485628


Når kolonneværdien ændres fra en mindre til en større værdi (f.eks. ændring af værdien fra 16 til 20), indsættes "D" før "I".

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1126

32

D

NULL

NULL

5639485628

1126

33

I

NULL

NULL

5639485628

Årsag

Dette problem opstår på grund af forkert rækkefølge mellem slet/indsæt par i tabellen til registrering af ændringer.

Løsning

Løsningen på dette problem er inkluderet i følgende opdateringer til SQL Server:

         Samlet opdatering 8 til SQL Server 2017

         Samlet opdatering 9 til SQL Server 2016 Service Pack 1

Samlet opdatering 12 til SQL Server 2014 SP2

Om SQL Server-builds

Hvert nye build til SQL Server indeholder alle de hotfixes og sikkerhedsrettelser, der var i det tidligere build. Vi anbefaler, at du installerer det nyeste build til SQL Server:

Seneste akkumulerede opdatering til SQL Server 2017

seneste build til SQL Server 2016

Seneste kumulativ opdatering til SQL Server 2014

Status

Microsoft har bekræftet, at problemet findes i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".

Flere oplysninger

Når en tabel til registrering af ændringer er aktiveret, indsættes der to poster i tabellen til registrering af ændringer, når der forekommer en opdatering på en ikke-primær kolonne, der er defineret som entydig, i tabellen til registrering af ændringer: En post for hver af de opdelte handlinger, Indsæt og Slet.

Når funktionen SKIFTTABEL kaldes for at optælle ændringerne, sorteres disse poster efter primære nøgleværdier, og derefter sammenlægges handlingerne. Hvis opdateringen indsætter en lavere værdi, køres en "I"-handling på sidetabellen først efterfulgt af en "D"-handling. Dette medfører, at der returneres en forkert handling for denne række. Dette skyldes, at "I" efterfulgt "D" sammenlægges som "D".

Da det kun er værdierne for den primære nøgle, der bevares i sidetabellerne, er det ikke nødvendigt at have to separate poster. Dette gælder, så længe kolonnen med den primære nøgle ikke opdateres.

Dette problem er rettet for ikke-primære entydige kolonner. I dette tilfælde, når opdateringen forekommer, indsættes der kun én række ved at have "U" som en opdateringshandling i stedet for to poster, der har "D" og "I".

Referencer

Få mere at vide om den terminologi , som Microsoft bruger til at beskrive softwareopdateringer.

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.

Communities hjælper dig med at stille og besvare spørgsmål, give feedback og høre fra eksperter med omfattende viden.

Var disse oplysninger nyttige?

Hvor tilfreds er du med kvaliteten af sproget?
Hvad påvirkede din oplevelse?
Når du trykker på Send, bliver din feedback brugt til at forbedre Microsoft-produkter og -tjenester. Din it-administrator kan indsamle disse data. Erklæring om beskyttelse af personlige oplysninger.

Tak for din feedback!

×