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:
- Cumulatieve update 9 voor SQL Server 2019
- Cumulatieve update 22 voor SQL Server 2017
- Cumulatieve update 15 voor SQL Server 2016 SP2
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:
- Meest recente cumulatieve update voor SQL Server 2019
- Meest recente cumulatieve update voor SQL Server 2017
- Meest recente cumulatieve update voor SQL Server 2016
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.