Applies ToSQL Server 2008

Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 в один файл для загрузки. Поскольку исправления являются кумулятивными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008.

Проблемы

Рассмотрим следующий сценарий.

  • Вы запускаете параллельный запрос, использующий функцию ROW_NUMBER в Microsoft SQL Server 2008.

  • Вы пытаетесь выполнить запрос с помощью подзапроса, находящегося внутри инструкции SELECT или оператора языка обработки данных (DML).

В этом сценарии вы столкнулись с одной из указанных ниже проблем.

  • Если выполнить запрос внутри оператора SELECT , вы получите неверные результаты.

  • В таблице могут содержаться неверные данные, если запрос выполняется в инструкции DML. Если таблица содержит ограничения, инструкция может завершиться с нарушением ограничения. Например, если таблица имеет первичный ключ, при выполнении инструкции INSERT может возникнуть ошибка нарушения основного ключа.

Примечание. Эти проблемы могут возникать в одной из указанных ниже ситуаций.

  • Для параметра подсказок запроса MAXDOP задается значение больше 2.

  • Параметр « Максимальная степень параллелизма » задает значение, которое больше 2 в конфигурации сервера.

Решение

Чтобы устранить эту проблему, установите последнюю версию пакета обновления для SQL Server 2008. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

968382 Как получить последний пакет обновления для SQL Server 2008

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

Чтобы обойти эту проблему, воспользуйтесь одним из описанных ниже методов.

  • Включите флаг трассировки 4134, если вы применили одно из указанных ниже обновлений.

    • Накопительный пакет обновления 6 для SQL Server 2008 или более поздний накопительный пакет обновления для SQL Server 2008

    • Накопительный пакет обновления 2 для SQL Server 2008 с пакетом обновления 1 (SP1) или более поздний накопительный пакет обновления для SQL Server 2008 SP1

    Дополнительные сведения о том, как включить флаги трассировки, можно найти на веб-сайте MSDN по следующему адресу:

    Включение флагов трассировки

  • Ссылка на раздел "временное решение" в статье 970198 базы знаний Майкрософт. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

    970198 Исправление: при выполнении запроса, использующего функцию row_number в SQL Server 2008, появляется неверный результат

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.