[FIX] UNION クエリが内部クエリ プロセッサ エラー メッセージ 8623 を返す

文書翻訳 文書翻訳
文書番号: 286255 - 対象製品
この記事は、以前は次の ID で公開されていました: JP286255
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
BUG #: 351259 (SHILOH_BUGS)
すべて展開する | すべて折りたたむ

目次

現象

以下の条件が満たされる場合に、クエリ ステートメントがエラー メッセージ 8623 で失敗することがあります。
  • クエリで UNION 句を使用している。

  • UNION クエリの SELECT ステートメントの 1 つに、IN 句を使用してサブクエリを参照する WHERE 句がある。

  • SQL Server クエリ オプティマイザが、ループ結合を選択している。
エラー メッセージの完全なテキストは、以下のとおりです。
サーバー : メッセージ 8623、レベル 16、状態 1、行 1 内部クエリ プロセッサ エラー : クエリ プロセッサはクエリ プランを作成できませんでした。詳細については、プライマリ サポート プロバイダにお問い合わせください。

解決方法

Service Pack の情報

この問題を解決するには、Microsoft SQL Server 2000 の最新の Service Pack を入手します。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
290211 最新の SQL Server 2000 Service Pack の入手方法

修正プログラムの情報

マイクロソフトでは、この問題を修正する修正プログラムを提供しています。ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。この修正プログラムは、ここで説明する問題が発生しているシステムにのみ適用してください。

修正プログラムをダウンロードできる場合は、この「サポート技術情報」 (Microsoft Knowledge Base) の資料の上部に「修正プログラムのダウンロード」セクションがあります。このセクションが表示されていない場合は、Microsoft Customer Service and Support にリクエストを送信し、修正プログラムを入手してください。

: 別の問題が発生した場合、またはトラブルシューティングが必要な場合には、別のサービス リクエストを作成しなければならない場合があります。特定の修正プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。Microsoft Customer Service and Support の電話番号一覧または別のサービス リクエストの作成については、次のマイクロソフト Web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support
:「ダウンロード」フォームには、修正プログラムを入手できる言語が表示されます。使用している言語が表示されない場合は、その言語の修正プログラムが存在しないことになります。 修正プログラム (英語版) のファイル属性は次のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。
日付           時刻     バージョン       サイズ       ファイル名    プラットフォーム
   -------------------------------------------------------------------

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

				
: ファイルの依存関係のため、最新の修正プログラムまたは機能には上記以外の追加ファイルが含まれていることがあります。

回避策

この現象を回避するには、以下の手順を実行します。
  • クエリ ステートメントを書き直し、IN 句サブクエリではなく結合を使用します。

    または

  • 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 Service Pack 1 で修正済みです。

詳細

次のクエリは、エラー メッセージ 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 - 最終更新日: 2014年2月24日 - リビジョン: 4.3
この資料は以下の製品について記述したものです。
  • 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 KB286255
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

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