Исправление: Запрос UNION возвращает сообщение об ошибке процессора внутреннего запроса 8623

Переводы статьи Переводы статьи
Код статьи: 286255 - Vizualiza?i produsele pentru care se aplic? acest articol.
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
ОШИБКА #: 351259 (SHILOH_BUGS)
Развернуть все | Свернуть все

В этой статье

Проблема

Инструкция запроса может произойти сбой с сообщением об ошибке 8623 при соблюдении следующих условий:
  • В запросе используется предложение UNION.

  • Одна из инструкций SELECT в запросе UNION содержит предложение WHERE, который ссылается на подчиненный запрос через предложение IN.

  • Оптимизатор запросов SQL Server выбирает цикла соединения для разрешения запросов.
Это полный текст сообщения об ошибке:
Сервер: Сообщение 8623, уровень 16, состояние 1, строка 1 внутренняя ошибка обработчика запросов: обработчику запросов не удалось предоставить план запроса. За дополнительными сведениями обратитесь в техническую поддержку.

Решение

Сведения о пакете обновления

Чтобы решить эту проблему, получите последний пакет обновления для Microsoft SQL Server 2000. Для получения дополнительных сведений обратитесь к следующей статье Базы Знаний Майкрософт::
290211Как получить последний пакет обновления для SQL Server 2000

Сведения об исправлении

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

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

Примечание.Другие проблемы или если требуется устранить неполадки, возможно, потребуется создать отдельный запрос. Дополнительные услуги по технической поддержке, не связанные с данным исправлением, оплачиваются вами дополнительно.. Полный список телефонов поддержки и обслуживания клиентов Microsoft или информацию по созданию отдельного запроса на обслуживание вы можете найти на веб-сайте Майкрософт::
http://support.microsoft.com/contactus/?ws=support
Примечание.В форме "Исправление доступно для загрузки" отображаются языки, для которых доступно исправление. Если язык не отображается, это значит, что исправление не доступно для данного языка..Английская версия данного исправления содержит версии файлов, приведенные в следующей таблице или более поздние.:
   Date         Time     Version    Size      File name      Platform
   -------------------------------------------------------------------

   01/13/2001   12:52a   8.00.240   7446589   Sqlservr.exe   Intel

				
Примечание.: Из-за ошибок в файл зависимостей, последние исправления или компонент, содержащий файлы предыдущей может также содержать дополнительные файлы.

Временное решение

Для решения этой проблемы выполните следующие действия.:
  • Перепишите оператор запроса и используется во вложенном запросе В предложении join.

    -ИЛИ-

  • Для принудительного объединения хеша с помощью подсказки оптимизатора OPTION. Примет запрос из примера в разделе «Дополнительная информация».

    SELECT P.EMP_NO, N.ADJ_SCON
      FROM   BATCH_EMPEE P, EMPLOYEE E, NI_CONDITION N
      WHERE  E.EMP_NO = P.EMP_NO AND
             N.EMP_NO = E.EMP_NO AND
             P.JOB_ID = 25 AND
             N.PAYRUN_NO = 0
    
      UNION
    
      SELECT P.EMP_NO, ''
      FROM   BATCH_EMPEE P, EMPLOYEE E
      WHERE  E.EMP_NO = P.EMP_NO AND
             P.JOB_ID = 25 AND
             E.EMP_NO NOT IN
                 (SELECT EMP_NO FROM NI_CONDITION WHERE PAYRUN_NO = 0)
    
      OPTION (HASH UNION)
    					

Статус

Данное поведение является подтвержденной ошибкой SQL Server 2000.. Впервые эта проблема была исправлена в SQL Server 2000 с пакетом обновления 1 (SP1).

Дополнительная информация

Следующий запрос приводится пример инструкции, которые могут вызвать сообщение об ошибке 8623.
SELECT P.EMP_NO, N.ADJ_SCON
  FROM   BATCH_EMPEE P, EMPLOYEE E, NI_CONDITION N
  WHERE  E.EMP_NO = P.EMP_NO AND
         N.EMP_NO = E.EMP_NO AND
         P.JOB_ID = 25 AND
         N.PAYRUN_NO = 0

  UNION

  SELECT P.EMP_NO, ''
  FROM   BATCH_EMPEE P, EMPLOYEE E
  WHERE  E.EMP_NO = P.EMP_NO AND
         P.JOB_ID = 25 AND
         E.EMP_NO NOT IN
             (SELECT EMP_NO FROM NI_CONDITION WHERE PAYRUN_NO = 0)
				

Свойства

Код статьи: 286255 - Последний отзыв: 21 февраля 2014 г. - Revision: 3.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Workgroup Edition
Ключевые слова: 
kbnosurvey kbarchive kbautohotfix kbhotfixserver kbbug kbfix kbqfe kbmt KB286255 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:286255

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com