CORRECTIF : des résultats incorrects peuvent se produire lorsque vous exécutez des requêtes sur des tables qui contiennent des index à l’aide d’un ordre de tri décroissant

Symptômes

Après avoir installé la mise à jour cumulative 4 (CU4) de SQL Server 2022, vous pouvez recevoir des résultats incorrects pour les requêtes qui remplissent toutes les conditions suivantes :

  1. Vous avez des index qui spécifient explicitement un ordre de tri décroissant. Voici un exemple :

    CREATE NONCLUSTERED INDEX [nci_table_column1] ON [dbo].[table1] (column1 DESC)
    
  2. Vous exécutez des requêtes sur les tables qui contiennent ces index. Ces requêtes spécifient un ordre de tri qui correspond à l’ordre de tri des index.

  3. La colonne de tri est utilisée dans les prédicats de requête de la clause ou des WHERE IN clauses d’égalité multiple. Voici un exemple :

    SELECT * FROM [dbo].[table1] WHERE column1 IN (1,2) ORDER BY column1 DESC
    SELECT * FROM [dbo].[table1] WHERE column1 = 1 or column1 = 2 ORDER BY column1 DESC
    

    Remarque

    La IN clause qui a une valeur unique n’a pas ce problème.

Résolution

Ce problème est résolu dans la mise à jour cumulative suivante pour SQL Server :

Mise à jour cumulative 5 pour SQL Server 2022

À propos des mises à jour cumulatives pour SQL Server

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et correctifs de sécurité qui se trouvaient dans la version précédente. Nous vous recommandons d’installer la version la plus récente pour votre version de SQL Server :

Dernière mise à jour cumulative pour SQL Server 2022

Solution de contournement

Pour contourner ce problème, désinstallez SQL Server 2022 CU4 ou activez l’indicateur de trace (TF) 13166, puis exécutez DBCC FREEPROCCACHE.

État

Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Références

En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.