KB4039776-FIX: nesprávne správanie pri použití pamäte optimalizované tabuľky s príkazom "Where Existed" v SQL Server 2016 alebo 2017

Príznaky

Predpokladajme, že používate Microsoft SQL Server 2016 alebo 2017. Pri spracovaní údajových transakcií s optimalizovanými pamäťami pomocou premenných s pamäťou optimalizovanou v príkaze where existuje , môže sa vyskytnúť nesprávny výsledok.

Príklad:

Krok krok: vytvorenie databázy a tabuľky optimalizovanej pre pamäť.

Vytvorenie ukážky databázy

ZMENIŤ databázu s ukážkou Pridanie skupiny súborov demo_mod obsahuje MEMORY_OPTIMIZED_DATA 

ZMENIŤ databázu demo pridať súbor (Name = ' demo_mod1 '; filename = ' C:\DATA\ demo_mod1 ') do skupiny súborov demo_mod 

Používanie ukážky

Ísť

Vytvorte typ dbo. IN_MEMORY_TABLE_TYPE TABUĽKY

(source_col INT NULL,

target_col INT NOT NULL

INDEX ix_InMemoryTable neskupinový (target_col)

) S (MEMORY_OPTIMIZED = ZAPNUTÉ)

ÍSŤ

Krok krok: Vloženie údajov a aktualizácia údajov.

DEKLAROVAnie @t dbo. IN_MEMORY_TABLE_TYPE

Vložiť @t (source_col, target_col) hodnoty (10; 0), (0; 0)

Vyberte * z @t

UPDATE R1 SET target_col =-1 z @t R1

KDE existuje (vyberte * z @t R2, kde r2.source_col > 0)

Vyberte * z @t

ÍSŤ

Krok3: Kontrola výsledkov.

Skutočné výsledky: nie všetky riadky premennej tabuľky @t sa aktualizujú.

source_col | target_col

----------------------

10 | -1

0 | 0

Očakávané výsledky: všetky riadky by mali byť aktualizované, aby mali target_col =-1.

source_col | target_col

----------------------

10 | -1

0 | 1.

Riešenie

Tento problém je vyriešený v nasledujúcich kumulatívnych aktualizáciách pre SQL Server:

      Kumulatívna aktualizácia 1 pre SQL Server 2017 

      Kumulatívna aktualizácia balíka 5 pre SQL Server 2016 SP1

Každá nová Kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúcej kumulatívnej aktualizácie. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:

Posledná Kumulatívna aktualizácia pre SQL Server 2017

Najnovšie kumulatívne aktualizácie pre SQL Server 2016

Stav

Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.

Odkazy

Oboznámte sa s terminológiou, ktorú spoločnosť Microsoft používa na popis aktualizácií softvéru.

Potrebujete ďalšiu pomoc?

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pripojiť k Microsoft insiderov chcú

Považujete poskytnuté informácie za užitočné?

Ďakujem za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×