KB4135113-FIX: record voor het bijhouden van wijzigingen is inconsistent tijdens een update voor een tabel met een geclusterde of unieke index in SQL Server

Symptomen

Wanneer u een update uitvoert voor een tabel met een geclusterde of unieke index en de update voor een niet-primaire unieke kolom voorkomt, is de record voor het bijhouden van wijzigingen niet consistent met de instructie update.

Stel dat een kolom met de naamKolom1 is opgenomen in de geclusterde of unieke index. Wanneer de waarde van de kolom wordt gewijzigd van een waarde die groter is dan een kleinere waarde (zoals het wijzigen van de waarde van 20 in 16), ontvangt de tabel change tracking de invoegbewerking vóór de bewerking Delete. Het logboek met een record voor een record met een record met een record invoegen wordt bijvoorbeeld ontvangen vóór de bewerking rij verwijderen of ' I ' vóór ' D '.

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1116

19

Vind

WAARDEN

WAARDEN

5639485628

1116

Maxi

2D

WAARDEN

WAARDEN

5639485628

Wanneer de waarde van de kolom wordt gewijzigd van kleiner in een grootere waarde (zoals het wijzigen van de waarde van 16 naar 20), wordt "D" ingevoegd voor "I".

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1126

32

2D

WAARDEN

WAARDEN

5639485628

1126

33

Vind

WAARDEN

WAARDEN

5639485628

Oorzaak

Dit probleem doet zich voor vanwege een onjuiste volgorde tussen de optie paren verwijderen/invoegen in de tabel wijzigingen bijhouden.

Oplossing

De oplossing voor dit probleem is opgenomen in de volgende updates voor SQL Server:

         Cumulatieve update 8 voor SQL Server 2017

         Cumulatieve update 9 voor SQL Server 2016 Service Pack 1

Cumulatieve update 12 voor SQL Server 2014 SP2

Info over SQL Server-versies

Elke nieuwe build voor SQL Server bevat alle hotfixes en beveiligingsfixes van de eerdere build. U wordt aangeraden de nieuwste versie van SQL Server te installeren:

Nieuwste cumulatieve update voor SQL Server 2017

nieuwste versie van SQL Server 2016

Nieuwste cumulatieve update voor SQL Server 2014

Status

Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.

Meer informatie

Als u een tabel voor het bijhouden van wijzigingen hebt ingeschakeld en er een update plaatsvindt voor een niet-primaire kolom die is gedefinieerd om uniek te zijn, worden er twee vermeldingen ingevoegd in de side table change tracking-tabel: één item voor elk van de gesplitste acties, invoegen en verwijderen.

Wanneer de functie CHANGETABLE wordt aangeroepen om de wijzigingen op te sommen, worden deze waarden gesorteerd op primaire-sleutelwaarden en worden de bewerkingen geaggregeerd. Als de update een lagere waarde invoegt, wordt eerst de bewerking "I" uitgevoerd voor de tabel en gevolgd door een "D"-bewerking. Hierdoor wordt een onjuiste bewerking geretourneerd voor deze rij. Dit komt doordat ' I ', gevolgd door ' d ' geaggregeerd.

Aangezien alleen de primaire-sleutelwaarden in de tabellen worden bijgehouden, is het niet nodig om twee aparte vermeldingen te hebben. Dit is waar als de primaire-sleutelkolom niet wordt bijgewerkt.

Dit probleem is opgelost voor niet-primaire unieke kolommen. Wanneer de update plaatsvindt, wordt slechts één rij ingevoegd door ' U ' als een updatebewerking uit te voeren in plaats van twee vermeldingen met ' D ' en ' I '.

Verwijzingen

Informatie over de terminologie die door Microsoft wordt gebruikt om software-updates te beschrijven.

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagenten.

×