Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Příznaky

Když spustíte aktualizaci v tabulce, která má clusterovaný nebo jedinečný index a k aktualizaci dojde v neprimárním jedinečném sloupci, záznam sledování změn je nekonzistentní s příkazem update.

Předpokládejme například, že sloupec s názvem "sloupec1" je součástí clusterovaného nebo jedinečného indexu. Když se hodnota sloupce změní z větší na menší hodnotu (například změna hodnoty z 20 na 16), tabulka na straně sledování změn obdrží operaci vložení před operací odstranění. Například operace záznamu řádku vložení transakčního protokolu je přijata před operaci 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

19

I

NULL

NULL

5639485628

1116

20

D

NULL

NULL

5639485628


Při změně hodnoty sloupce z menší na větší hodnotu (například změna hodnoty z 16 na 20) se před "I" vloží "D".

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

Příčina

K tomuto problému dochází z důvodu nesprávné řazení mezi páry delete/insert v tabulce na straně sledování změn.

Řešení

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

         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

Informace o sestaveních SQL Server

Každé nové sestavení pro SQL Server 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 se při aktualizaci neprimárního sloupce, který je definován jako jedinečný, vloží do tabulky na straně sledování změn dvě položky: jednu položku pro každou akci rozdělení, vložení a odstranění.

Při volání funkce CHANGETABLE pro výčet změn jsou tyto položky seřazeny podle hodnot primárního klíče a pak se operace agregují. Pokud aktualizace vloží nižší hodnotu, spustí se nejprve operace "I" na boční tabulce následovaná operací "D". To způsobí vrácení nesprávné operace pro tento řádek. Důvodem je to, že "I" následované "D" se agreguje jako "D".

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

Tento problém je opravený u neprimárních jedinečných sloupců. V tomto případě, když dojde k aktualizaci, pouze jeden řádek se vloží tak, že "U" jako operaci aktualizace místo dvou položek, které mají "D" a "I".

Odkazy

Přečtěte si o terminologii , kterou Microsoft používá k popisu aktualizací softwaru.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×