KB4502400 - FIX: SQL Server 2014, 2016 en 2017 voeren de aangevraagde toewijzingen vóór de rij niet uit wanneer u de instructie MERGE gebruikt waarmee toewijzingen van lokale variabelen voor elke rij worden uitgevoerd

Van toepassing op
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)

Symptomen

Laten we veronderstellen dat u de instructie MERGE gebruikt om erachter te komen hoeveel rijen niet overeenkomen per bron en sla deze gegevens als volgt op in een lokale variabele:

DECLARE
  @NotMatchedBySource INTEGER = 0;

MERGE TargetTable USING SourceTable ON TargetTable.id = SourceTable.id
INDIEN NIET GEMATCHT DOOR BRON DAN
  UPDATE SET @NotMatchedBySource = @NotMatchedBySource + 1;

AFDRUKKEN @NotMatchedBySource;
GAAN

In deze situatie kan het gebeuren dat de waarde van @NotMatchedBySource na de instructie MERGE mogelijk niet overeenkomt met het werkelijke aantal rijen dat niet wordt vergeleken door de bron.

Status

Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in het gedeelte 'Van toepassing op'.

Oplossing

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

Over cumulatieve updates voor SQL Server:

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die deel uitmaakten van de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:

Meer informatie

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