Ongelman ilmenemistapa
Oletetaan, että käytät MERGE-lausetta sen selvittämiseen, kuinka monta riviä lähde ei vastaa, ja tallennat sen paikalliseen muuttujaan seuraavasti:
ILMOITA
@NotMatchedBySource INT = 0;
MERGE TargetTable USING SourceTable ON TargetTable.id = SourceTable.id
KUN LÄHDE EI TÄSMÄÄ, NIIN
UPDATE SET @NotMatchedBySource = @NotMatchedBySource + 1;
TULOSTA @NotMatchedBySource;
SIIRRY
Tässä tilanteessa saatat huomata, että MERGE-lausekkeen jälkeinen @NotMatchedBySource arvo ei ehkä vastaa niiden rivien todellista määrää, joita lähde ei vastaa.
Tila
Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.
Ratkaisu
Tämä ongelma on korjattu seuraavissa SQL Server kumulatiivisissa päivityksissä
Tietoja SQL Server:n kumulatiivisista päivityksistä:
Jokainen uusi SQL Server -kumulatiivinen päivitys sisältää kaikki edelliseen kumulatiiviseen päivitykseen sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Tutustu SQL Serverin uusimpiin kumulatiivisiin päivityksiin:
- SQL Server 2017:n uusin kumulatiivinen päivitys
- SQL Server 2016:n uusin kumulatiivinen päivitys
- SQL Server 2014:n uusin kumulatiivinen päivitys
Viitteet
Lue tietoja Microsoftin ohjelmistopäivitystensä kuvaamiseen käyttämästä sanastosta.