Symptom
Anta att du använder MERGE-instruktionen för att ta reda på hur många rader som inte matchas av källa och lagra den i en lokal variabel enligt följande:
DECLARE
@NotMatchedBySource heltal = 0;
MERGE TargetTable USING SourceTable ON TargetTable.id = SourceTable.id
OM DET INTE MATCHAS AV KÄLLAN
UPPDATERINGSUPPSÄTTNING @NotMatchedBySource = @NotMatchedBySource + 1;
SKRIVA UT @NotMatchedBySource;
GÅ TILL
I det här fallet kanske du märker att värdet för @NotMatchedBySource efter MERGE-instruktionen kanske inte återspeglar det faktiska antalet rader som inte matchas av källan.
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".
Lösning
Det här problemet åtgärdas i följande kumulativa uppdateringar för SQL Server
Om kumulativa uppdateringar för SQL Server:
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
- Senaste kumulativa uppdateringen på SQL Server 2017
- Senaste kumulativa uppdateringen för SQL Server 2016
- Senaste kumulativa uppdateringen för SQL Server 2014
Referenser
Läs om den terminologi som Microsoft använder för att beskriva programuppdateringar.