KB4135113 – FIX: záznam sledování změn je při aktualizaci v tabulce s clusterovaným nebo jedinečným indexem na serveru SQL Server nekonzistentní

Příznaky

Pokud spustíte aktualizaci tabulky s clusterovaným nebo jedinečným indexem a dojde k aktualizaci na neprimárním sloupci jedinečného typu, bude záznam sledování změn nekonzistentní s příkazem Update.

Předpokládejme například, že sloupec s názvem "Sloupec1" je zahrnutý v clusteru nebo v jedinečném indexu. Když se hodnota sloupce změní z větší na menší hodnotu (například změna hodnoty z 20 na 16), před operací odstranění obdrží tabulka sledování změn. Například operace vložit řádek protokolu transakcí se přijme před operací odstranění řádku nebo "I" je vložen před "D".

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1116

odstavec

I

HODNOTĚ

HODNOTĚ

5639485628

1116

20

Dvojrozměrné

HODNOTĚ

HODNOTĚ

5639485628

Když se hodnota sloupce změní z menší na hodnotu large (například změna hodnoty z 16 na 20), před hodnotu "I" se vkládá slovo "D".

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1126

32

Dvojrozměrné

HODNOTĚ

HODNOTĚ

5639485628

1126

33

I

HODNOTĚ

HODNOTĚ

5639485628

Příčina

K tomuto problému dochází kvůli nesprávnému řazení párů mezi dvojicemi odstranění a vložení v tabulce Změna sledování.

Řešení

Oprava tohoto problému je součástí následujících aktualizací SQL serveru:

         Kumulativní aktualizace 8 pro SQL Server 2017

         Kumulativní aktualizace 9 pro SQL Server 2016 Service Pack 1

Kumulativní aktualizace 12 pro SQL Server 2014 SP2

O buildech SQL serveru

Každé nové sestavení SQL serveru obsahuje všechny opravy hotfix a opravy zabezpečení, které byly v předchozím buildu. Doporučujeme nainstalovat nejnovější Build pro SQL Server:

Nejnovější kumulativní aktualizace pro SQL Server 2017

Nejnovější Build pro SQL Server 2016

Nejnovější kumulativní aktualizace pro SQL Server 2014

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Více informací

V případě tabulky s povoleným sledováním změn, když dojde k aktualizaci na neprimárním sloupci, který je jedinečný, se dvě položky vloží do tabulky sledování změn: jedna položka pro každou z akcí rozdělení, vložení a odstranění.

Když je funkce CHANGETABLE volána pro vytvoření výčtu změn, jsou tyto položky řazeny podle hodnot primárního klíče a pak jsou tyto operace agregované. Pokud aktualizace vloží nižší hodnotu, operace "I" je nejdříve v tabulce na straně a následovaná operací D. To způsobí vrácení nesprávné operace pro tento řádek. Je to proto, že se jako "D" používá "I".

Vzhledem k tomu, že v bočních tabulkách jsou zachovány pouze hodnoty primárního klíče, není nutné mít k dispozici dvě samostatné položky. To platí, pokud sloupec primárního klíče aktualizován není.

Tento problém je opravený pro neprimární jedinečné sloupce. V tomto případě se při aktualizaci vloží jenom jeden řádek, protože místo dvou položek s písmeny "k" a "I" je vložená operace.

Odkazy

Informace o terminologii , kterou Microsoft používá k popisu aktualizací softwaru.

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Děkujeme za váš názor!

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×