Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

Belirtiler

Microsoft SQL Server 2016 veya 2017 kullandığınızı varsayalım. Where exists deyimiyle bellek için iyileştirilmiş tablo değişkenlerini kullanarak bellek için iyileştirilmiş veri işlemlerini işlerken yanlış bir sonuç alabilirsiniz.

Örneğin:

Adım1: Bellek için iyileştirilmiş bir veritabanı ve tablo oluşturun.

VERITABANı oluşturma tanıtımı

ALTER DATABASE demo ADD FILEGROUP demo_mod CONTAINS MEMORY_OPTIMIZED_DATA 

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

Tanıtım'a bakın

Git

CREATE TYPE dbo. IN_MEMORY_TABLE_TYPE AS TABLE

( INT NULL source_col,

TARGET_COL INT NULL değil

İNDİS ix_InMemoryTable DÜZENSİz (target_col)

) WITH (MEMORY_OPTIMIZED = ON)

GO

Adım2: Veri ekleme ve verileri güncelleştirme.

Dbo @t BILDIRIN. IN_MEMORY_TABLE_TYPE

INSERT @t ( source_col, target_col ) DEĞERLER (10, 0),(0, 0)

@t *'yi seçin

UPDATE r1 SET target_col = -1 FROM @t r1

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

SELECT * FROM @t

GO

Adım3: Sonuçları denetleyin.

Gerçek Sonuçlar: Tablo değişkeninin tüm satırları güncelleştirilmez @t .

source_col | target_col

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

10 | -1

0 | 0

Beklenen sonuçlar: Tüm satırlar target_col = -1 olacak şekilde güncelleştirilmelidir.

source_col | target_col

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

10 | -1

0 | -1.

Çözüm

Bu sorun, SQL Server için aşağıdaki toplu güncelleştirmelerde düzeltildi:

      SQL Server 2017 için Toplu Güncelleştirme 1 

      SQL Server 2016 SP1 için Toplu Güncelleştirme 5

SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmede yer alan tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmelere göz atın:

SQL Server 2017 için en son toplu güncelleştirme

SQL Server 2016 için en son toplu güncelleştirmeler

Durum

Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Başvurular

Microsoft'un yazılım güncelleştirmelerini açıklamak için kullandığı terminolojihakkında bilgi edinin.

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×