KB4575689 - FIX: er kunnen onjuiste resultaten optreden wanneer u een gekoppelde serverquery uitvoert met aggregaties of joins op een tabel met gefilterde index op een externe server in SQL Server

Van toepassing op
SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows 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 2019 on Windows

Symptomen

Stel dat u een query met aggregaties en joins (bijvoorbeeld: COUNT WITH GROUP BY) uitvoert op een tabel met een gefilterde index in SQL Server die als externe server wordt gebruikt, en dat de gebruiker niet de machtiging DEFINITIE WEERGEVEN heeft. In dit scenario beschouwt de gekoppelde server de gefilterde index als een volledige unieke index en worden onjuiste resultaten geretourneerd.

Meer informatie

Wanneer u een externe query uitvoert, gebruikt het proces van de gekoppelde server indexmetagegevens om de query te optimaliseren. Wanneer u niet de machtiging DEFINITIE weergeven hebt voor de database waarop een query wordt uitgevoerd, geven de metagegevens niet aan dat de index een gefilterde index is en beschouwt de query-optimizer de index als een volledige unieke index. Deze oplossing corrigeert de indexmetagegevens voor een gefilterde index wanneer u niet over de machtiging DEFINITIE WEERGEVEN beschikt voor overweging door de Query Optimizer.

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:

Opmerking: Deze oplossing moet worden toegepast op de externe gekoppelde 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:

Tijdelijke oplossing

Probeer een van de volgende methoden om dit probleem te omzeilen:

  • Verwijder de gefilterde index.
  • Weergavedefinitie aan de gebruiker verlenen. Voorbeeld: DEFINITIE VAN WEERGAVE VERLENEN AAN test_user;

Meer informatie

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