ИСПРАВЛЕНИЕ. Неправильные результаты могут возникать при выполнении запросов к таблицам, содержащим индексы с помощью порядка сортировки по убыванию
Симптомы
После установки накопительного обновления 4 (CU4) SQL Server 2022 вы можете получить неправильные результаты из запросов, удовлетворяющих всем следующим условиям:
У вас есть индексы, которые явно указывают порядок сортировки по убыванию. Приведем пример:
CREATE NONCLUSTERED INDEX [nci_table_column1] ON [dbo].[table1] (column1 DESC)
Вы выполняете запросы к таблицам, содержащим эти индексы. Эти запросы указывают порядок сортировки, соответствующий порядку сортировки индексов.
Столбец сортировки используется в предикатах запроса в
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
.
Состояние
Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в разделе «Применимо к».
Ссылки
Узнайте о терминологии , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.