KB4502400 – JAVÍTÁS: A SQL Server 2014, 2016 és 2017 nem hajtja végre a kért sorelőtti hozzárendeléseket, ha a MERGE utasítást használja, amely minden sorhoz helyi változók hozzárendelését végzi el

Hatókör
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)

Tünetek

Tegyük fel, hogy a MERGE utasítást használja arra, hogy megtudja, hány sor nem egyezik meg a forrással, és tárolja azt egy helyi változóban az alábbiak szerint:

DECLARE
  @NotMatchedBySource INT = 0;

MERGE TargetTable USING SourceTable ON TargetTable.id = SourceTable.id
HA A FORRÁS NEM EGYEZIK MEG, AKKOR
  FRISSÍTÉSI KÉSZLET @NotMatchedBySource = @NotMatchedBySource + 1;

NYOMTATÁS @NotMatchedBySource;
INDÍTÁS

Ebben az esetben azt tapasztalhatja, hogy a MERGE utasítás utáni @NotMatchedBySource érték nem tükrözi a forrással nem egyező sorok tényleges számát.

Állapot

A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.

Megoldás

Ezt a hibát az SQL Server következő összegző frissítéseiben javítottuk

Az SQL Server összegző frissítéseinek ismertetése:

Az SQL Server minden új összegző frissítése tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző kumulatív frissítésben szerepelt. Tekintse meg az SQL Server legújabb összegző frissítéseit:

Hivatkozások

Ismerje meg a Microsoft szoftverfrissítésekkel kapcsolatos terminológiáját.