Applies ToSQL 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)

Gejala

Misalnya Anda menggunakan Microsoft SQL Server 2016 atau 2017. Saat Anda memproses transaksi data yang dioptimalkan memori dengan menggunakan variabel tabel yang dioptimalkan memori dengan pernyataan di mana ada , Anda mungkin mendapatkan hasil yang salah.

Misalnya:

Langkah1: Buat database dan tabel yang dioptimalkan memori.

Membuat demo DATABASE

MENGUBAH DEMO DATABASE TAMBAHKAN GRUP FILE demo_mod BERISI MEMORY_OPTIMIZED_DATA 

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

Menggunakan Demo

Pergi

BUAT TIPE dbo. IN_MEMORY_TABLE_TYPE SEBAGAI TABEL

( source_col INT NULL,

target_col INT bukan NULL

INDEX ix_InMemoryTable NONCLUSTERED (target_col)

) WITH (MEMORY_OPTIMIZED = AKTIF)

PERGI

Langkah2: Sisipkan data dan perbarui data.

DEKLARASI @t dbo. IN_MEMORY_TABLE_TYPE

SISIPKAN nilai @t ( source_col, target_col ) (10, 0),(0, 0)

pilih * dari @t

UPDATE r1 SET target_col = -1 FROM @t r1

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

PILIH * DARI @t

PERGI

Langkah3: Periksa hasil.

Hasil Aktual: Tidak semua baris variabel tabel @t diperbarui.

source_col | target_col

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

10 | -1

0 | 0

Hasil yang diharapkan: Semua baris harus diperbarui agar memiliki target_col = -1.

source_col | target_col

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

10 | -1

0 | -1.

Pemecahan Masalah

Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut untuk SQL Server:

      Pembaruan Kumulatif 1 untuk SQL Server 2017 

      Pembaruan Kumulatif 5 untuk SQL Server 2016 SP1

Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:

Pembaruan kumulatif terbaru untuk SQL Server 2017

Pembaruan kumulatif terbaru untuk SQL Server 2016

Status

Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".

Referensi

Pelajari tentang terminologiyang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.