Simptomai

Kai naujinate lentelę, kurioje yra Jungtinė arba unikali rodyklė, o naujinimas vykdomas nepagrindiniame unikaliame stulpelyje, keitimų sekimo įrašas nesuderinamas su atnaujinimo patvirtinimu.

Pavyzdžiui, Tarkime, kad stulpelis, pavadintas "stulpelis1" , yra įtrauktas į Jungtinę arba unikalų indeksą. Kai stulpelio reikšmė pakeičiama iš didesnės į mažesnę reikšmę (pvz., pakeitus reikšmę nuo 20 iki 16), keitimų sekimo lentelė gauna įterpimo operaciją prieš naikinimo operaciją. Pvz., operacijų žurnalų įterpimo eilutės įrašo operacija gauta prieš naikinimo eilutės operaciją, arba "I" įterpiama prieš "D."

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1116

19

NULL

NULL

5639485628

1116

20

D

NULL

NULL

5639485628

Kai stulpelio reikšmė pakeičiama iš mažesnio į largeer reikšmę (pvz., pakeitus reikšmę nuo 16 iki 20), "D" įterpiama prieš "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

NULL

NULL

5639485628

Priežastis

Ši problema kyla dėl neteisingo užsakymo naikinimo/įterpimo porų lentelėje keitimų sekimas.

Sprendimas

Šios problemos sprendimas įtrauktas į šiuos SQL serverio naujinimus:

         Kaupiamasis naujinimas 8 SQL serverio 2017

         Kaupiamasis naujinimas 9 SQL serverio 2016 1 pakeitimų paketui

Kaupiamasis naujinimas 12 SQL serverio 2014 SP2

Apie "SQL Server" komponavimo versijas

Kiekvienoje naujoje "SQL Server" versijoje yra visos karštosios pataisos ir saugos pataisos, kurios buvo ankstesniame komponavimo versijoje. Rekomenduojame įdiegti naujausią "SQL Server" komponavimo versiją:

Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2017"

naujausias "SQL Server 2016" Komponavimo versija

Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2014"

Statusą

"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.

Daugiau informacijos

Jei yra įgalinta lentelė keitimų sekimas, kai "non-Primary" stulpelyje, kuris apibrėžtas kaip unikalus, pasirodo du įrašai, įterpiami į lentelę keitimų sekimas: vienas įrašas apie kiekvieną išskaidytų veiksmų skaičių, įterpti ir naikinti.

Kai pakeičiama funkcija CHANGETABLE , kad būtų išvardyti keitimai, šie įrašai surikiuojami pagal pirminių raktų reikšmes, tada operacijos sujungiamos. Jei naujinimas įterpia mažesnę reikšmę, pirmiausia "I" operacija vykdoma pirmojoje pusėje esančioje lentelėje, o po jos yra operacija "D". Dėl šios eilutės grąžinama neteisinga operacija. Taip yra todėl, kad "aš" po "D" yra agreguotas kaip "D."

Kadangi šoninėje lentelėje palaikomos tik pirminių raktų reikšmės, nebūtina turėti du atskirus įrašus. Tai yra teisinga tol, kol neatnaujinamas pirminis rakto stulpelis.

Ši problema išspręsta nepirminių unikalių stulpelių srityje. Šiuo atveju, kai bus atnaujinta, tik viena eilutė įterpiama "U" kaip naujinimo operacija, o ne du įrašus, kuriuose yra "D" ir "I".

Nuorodos

Sužinokite apie terminologiją "Microsoft" naudoja programinės įrangos naujinimams apibūdinti.

Reikia daugiau pagalbos?

Tobulinkite savo įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijungti prie "Microsoft Insider"

Ar ši informacija buvo naudinga?

Ar esate patenkinti vertimo kokybe?
Kas turėjo įtakos jūsų patirčiai?

Dėkojame už jūsų atsiliepimus!

×