Pierakstīties, izmantojot Microsoft
Pierakstīties vai izveidot kontu
Sveicināti!
Atlasīt citu kontu.
Jums ir vairāki konti
Izvēlieties kontu, ar kuru vēlaties pierakstīties.

Simptomi

Palaižot atjauninājumu tabulā, kurā ir sagrupēti vai unikāli indeksi un atjauninājums tiek lietots neprimārā unikālā kolonnā, izmaiņu reģistrēšanas ieraksts neatbilst priekšrakstam Update.

Piemēram, pieņemsim, ka sagrupētā vai unikālā indeksā ir iekļauta kolonna, kuras nosaukums ir "Kolonna1" . Ja kolonnas vērtība tiek mainīta no lielākas uz mazāku vērtību (piemēram, mainot vērtību no 20 uz 16), izmaiņu reģistrēšanas tabulā tiek saņemta ievietošanas darbība, kas atrodas pirms dzēšanas operācijas. Piemēram, darbību žurnāls rindas ieraksta ievietošana tiek saņemta pirms rindas dzēšanas operācijas vai "I", kas tiek ievietota pirms "D".

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1116

19

Var

NULL

NULL

5639485628

1116

20

D

NULL

NULL

5639485628

Ja kolonnas vērtība tiek mainīta no mazākā līdz lielākajai vērtībai (piemēram, mainot vērtību no 16 līdz 20), tiek ievietots "D", pirms "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

Var

NULL

NULL

5639485628

Cēlonis

Šī problēma rodas tāpēc, ka ir nepareizi pasūtījumi starp dzēšanas/ievietošanas pāriem tabulā izmaiņu reģistrēšana.

Risinājums

Šīs problēmas labojums ir iekļauts šādos SQL Server atjauninājumos:

         Kumulatīvais atjauninājums 8 SQL Server 2017

         Kumulatīvais atjauninājums 9 SQL Server 2016 1. servisa pakotnei

Kumulatīvais atjauninājums 12 SQL Server 2014 SP2

Par SQL Server būvējumiem

Katrā jaunajā SQL Server būvējumā ir ietverti visi labojumfaili un drošības labojumi, kas bija iepriekšējā būvējumā. Ieteicams instalēt jaunāko būvējumu SQL Server:

Jaunākais SQL Server 2017 kumulatīvais atjauninājums

jaunākā būvējums SQL Server 2016

Jaunākais SQL Server 2014 kumulatīvais atjauninājums

Statusa

Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".

Papildinformācija

Izmaiņu reģistrēšanas iespējotās tabulas gadījumā, kad atjaunināšana notiek neprimārajā kolonnā, kas ir definēta kā unikāla, tiek ievietoti divi ieraksti tabulā izmaiņu reģistrēšanas puses: viens ieraksts katram no sadalītajām darbībām, ievietošana un dzēšana.

Kad tiek izsaukta funkcija CHANGETABLE , lai uzskaitītu izmaiņas, šīs ievadnes tiek kārtotas pēc primārās atslēgas vērtībām, un pēc tam darbības tiek summētas. Ja atjauninājumā tiek ievietota zemāka vērtība, vispirms tabulā tiek palaista operācija "I", kam seko "D" operācija. Tādējādi šajā rindā tiek atgriezta nepareiza operācija. Tas ir tāpēc, ka "I" un "D" tiek apkopoti kā "D".

Tā kā puses tabulās ir saglabātas tikai primārās atslēgas vērtības, nav nepieciešamas divas atsevišķas ievadnes. Tas ir patiess, kamēr primārās atslēgas kolonna netiek atjaunināta.

Šī problēma ir novērsta neprimārajām unikālām kolonnām. Šajā gadījumā, kad tiek veikts atjauninājums, tiek ievietota tikai viena rinda, ja "U" ir norādīts kā atjaunināšanas operācija, nevis divi ieraksti ar "D" un "I".

Atsauces

Uzziniet par terminoloģiju , ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.

Kopienas palīdz uzdot jautājumus un atbildēt uz tiem, sniegt atsauksmes, kā arī saņemt informāciju no ekspertiem ar bagātīgām zināšanām.

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?
Nospiežot Iesniegt, jūsu atsauksmes tiks izmantotas Microsoft produktu un pakalpojumu uzlabošanai. Jūsu IT administrators varēs vākt šos datus. Paziņojums par konfidencialitāti.

Paldies par jūsu atsauksmēm!

×