KB4502400 - DÜZELTME: SQL Server 2014, 2016 ve 2017, her satır için yerel değişkenlerin atamalarını gerçekleştiren MERGE deyimini kullandığınızda istenen satır öncesi atamaları gerçekleştirmiyor

Uygulandığı Öğe
SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Belirtiler

Kaynağa göre eşleşmeyen satır sayısını bulmak için MERGE deyimini kullandığınızı ve bunu aşağıdaki gibi yerel bir değişkende depoladığınızı varsayalım:

DECLARE
  @NotMatchedBySource INT = 0;

MERGE TargetTable USING SourceTable ON TargetTable.id = SourceTable.id
KAYNAĞA GÖRE EŞLEŞMEDIĞINDE,
  GÜNCELLEME SETI @NotMatchedBySource = @NotMatchedBySource + 1;

BASKI @NotMatchedBySource;
GİDİN

Bu durumda, MERGE deyiminden sonraki @NotMatchedBySource değerinin, kaynağa göre eşleşmeyen gerçek satır sayısını yansıtmayabileceğini fark edebilirsiniz.

Durum

Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.

Çözüm

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

SQL Server toplu güncelleştirmeleri hakkında:

SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmeye dahil edilen 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:

Başvurular

Microsoft'un yazılım güncelleştirmelerini tanımlamak için kullandığı terminoloji hakkında bilgi edinin.