Поделиться через


ИСПРАВЛЕНИЕ. Неправильные результаты могут возникать при выполнении запросов к таблицам, содержащим индексы с помощью порядка сортировки по убыванию

Симптомы

После установки накопительного обновления 4 (CU4) SQL Server 2022 вы можете получить неправильные результаты из запросов, удовлетворяющих всем следующим условиям:

  1. У вас есть индексы, которые явно указывают порядок сортировки по убыванию. Приведем пример:

    CREATE NONCLUSTERED INDEX [nci_table_column1] ON [dbo].[table1] (column1 DESC)
    
  2. Вы выполняете запросы к таблицам, содержащим эти индексы. Эти запросы указывают порядок сортировки, соответствующий порядку сортировки индексов.

  3. Столбец сортировки используется в предикатах запроса в WHERE IN предложении или нескольких предложениях равенства. Приведем пример:

    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
    

    Примечание.

    Предложение IN с одним значением не имеет этой проблемы.

Решение

Эта проблема устранена в следующем накопительном обновлении для SQL Server:

Накопительное обновление 5 для SQL Server 2022

Сведения о накопительных обновлениях для SQL Server

Каждое новое накопительное обновление для SQL Server содержит все исправления и исправления безопасности, которые были в предыдущей сборке. Рекомендуется установить последнюю сборку для вашей версии SQL Server:

Последнее накопительное обновление для SQL Server 2022

Обходное решение

Чтобы обойти эту проблему, удалите SQL Server 2022 CU4 или включите флаг трассировки (TF) 13166, а затем запустите DBCC FREEPROCCACHE.

Состояние

Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в разделе «Применимо к».

Ссылки

Узнайте о терминологии , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.