Van toepassing op
SQL 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 on Windows (all editions)

Symptomen

Stel dat u Microsoft SQL Server 2016 of 2017 gebruikt. Wanneer u gegevenstransacties die zijn geoptimaliseerd voor geheugen verwerkt met behulp van tabelvariabelen die zijn geoptimaliseerd voor geheugen met de instructie where exists , krijgt u mogelijk een verkeerd resultaat.

Bijvoorbeeld:

Stap 1: maak een voor geheugen geoptimaliseerde database en tabel.

Database-demo maken

ALTER DATABASE demo ADD FILEGROUP demo_mod CONTAINS MEMORY_OPTIMIZED_DATA 

ALTER DATABASE demo ADD FILE (name='demo_mod1', bestandsnaam='C:\DATA\demo_mod1') TO FILEGROUP demo_mod 

Demo gebruiken

Gaan

CREATE TYPE dbo. IN_MEMORY_TABLE_TYPE AS-TABEL

( source_col INT NULL,

target_col INT niet NULL

INDEX ix_InMemoryTable NONCLUSTERED (target_col)

) WITH (MEMORY_OPTIMIZED = AAN)

GAAN

Stap 2: Gegevens invoegen en gegevens bijwerken.

DECLAREER @t dbo. IN_MEMORY_TABLE_TYPE

INSERT @t ( source_col, target_col ) VALUES (10, 0),(0, 0)

selecteer * in @t

UPDATE r1 SET target_col = -1 FROM @t r1

WHERE EXISTS ( SELECT * FROM @t r2 WHERE r2.source_col > 0 )

SELECT * FROM @t

GAAN

Stap 3: Controleer de resultaten.

Werkelijke resultaten: niet alle rijen met tabelvariabele @t worden bijgewerkt.

source_col | target_col

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

10 | -1

0 | 0

De verwachte resultaten: alle rijen moeten worden bijgewerkt met target_col = -1.

source_col | target_col

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

10 | -1

0 | -1.

Oplossing

Dit probleem is opgelost in de volgende cumulatieve updates voor SQL Server:

      Cumulatieve update 1 voor SQL Server 2017 

      Cumulatieve update 5 voor SQL Server 2016 SP1

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die zijn opgenomen in de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:

Meest recente cumulatieve update voor SQL Server 2017

Meest recente cumulatieve updates voor SQL Server 2016

Status

Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.

Verwijzingen

Meer informatie over de terminologiedie Microsoft gebruikt om software-updates te beschrijven.

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.