KB4575689 - FIX: Possono verificarsi risultati non corretti quando si esegue una query su un server collegato con aggregazioni o join su una tabella con indice filtrato in un server remoto in SQL Server

Si applica a
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

Sintomi

Si supponga di eseguire una query con aggregazioni e join (ad esempio: COUNT WITH GROUP BY) in una tabella con indice filtrato in SQL Server che viene usato come server remoto e che l'utente non dispone dell'autorizzazione VIEW DEFINITION. In questo scenario, il server collegato considera l'indice filtrato come un indice univoco completo e la query restituisce risultati non corretti.

Altre informazioni

Quando si esegue una query remota, il processo del server collegato utilizza i metadati di indicizzazione per ottimizzare la query. Se non si dispone dell'autorizzazione VIEW DEFINITION per il database su cui viene eseguita la query, i metadati non indicano che si tratta di un indice filtrato e Query Optimizer considera l'indice come un indice univoco completo. Questa correzione corregge i metadati dell'indice per un indice filtrato quando non si dispone dell'autorizzazione VIEW DEFINITION per l'esame da parte di Query Optimizer.

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".

Risoluzione

Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:

Nota: Questa correzione dovrebbe essere applicata al server collegato remoto.

Informazioni sugli aggiornamenti cumulativi per SQL Server:

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni rapide e di sicurezza incluse nell'aggiornamento cumulativo precedente. Vedere gli aggiornamenti cumulativi più recenti per SQL Server:

Soluzione alternativa

Per ovviare a questo problema, provare una delle seguenti metodiche:

  • Rimuovere l'indice filtrato.
  • Concedi la definizione della vista all'utente. Es: CONCEDERE LA DEFINIZIONE DELLA VISTA A test_user;

Riferimenti

Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.