Gäller förSQL Server 2016 Service Pack 1 SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

Symptom

Anta att du använder Microsoft SQL Server 2016 eller 2017. När du bearbetar minnesoptimerade data transaktioner med hjälp av minnesoptimerade servervariabler med instruktionen WHERE exists kan du få ett fel meddelande.

Till exempel:

Steg 1: skapa en minnesoptimerade databas och tabell.

Skapa databas demo

ALTER ADD demo_mod filgrupp för databas demo innehåller MEMORY_OPTIMIZED_DATA 

ALTER databas demo ADD FILE (namn = ' demo_mod1 ', filename = ' C:\DATA\ demo_mod1 ') till filgrupp demo_mod 

Använd demo

Använder

SKAPA typen dbo. IN_MEMORY_TABLE_TYPE SOM TABELL

(source_col INT NULL

target_col INT NOT NULL

INDEX ix_InMemoryTable inte GRUPPERad (target_col)

) MED (MEMORY_OPTIMIZED = PÅ)

ANVÄNDER

Steg 2: infoga data och uppdatera data.

DEKLARERA @t dbo. IN_MEMORY_TABLE_TYPE

Infoga @t (source_col, target_col) värden (10, 0), (0; 0)

Välj * från @t

UPPDATERING R1 ange target_col =-1 från @t R1

WHERE finns (SELECT * FROM @t R2 där r2.source_col > 0)

Välj * från @t

ANVÄNDER

Steg 3: kontrol lera resultaten.

Faktiska resultat: alla rader med tabell variabel @t inte uppdateras.

source_col | target_col

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

10 | -1

0 | siffrorna

Det förväntade resultatet: alla rader bör uppdateras så att de har target_col =-1.

source_col | target_col

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

10 | -1

0 | 9.1.

Lösning

Det här problemet är åtgärdat i följande kumulativa uppdateringar för SQL Server:

      Kumulativ uppdatering 1 för SQL Server 2017 

      Kumulativ uppdatering 5 för SQL Server 2016 SP1

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

Senaste kumulativa uppdateringen för SQL Server 2017

Senaste kumulativa uppdateringar för SQL Server 2016

Status

Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".

Referenser

Lär dig mer om terminologinsom Microsoft använder för att beskriva program varu uppdateringar.

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.