[FIX]複雑なUpdateステートメントが8624内部SQL Serverエラーを返す

この記事は、以前は次の ID で公開されていました: JP286249
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
サブクエリを持つ UPDATE ステートメントが、UNION ALL 句で作成された派生テーブルに対して選択を行なう場合に、次のエラー メッセージを生成することがあります。
サーバー : メッセージ 8624、レベル 16、状態 21、行 2
内部 SQL Server エラー。
解決方法
この問題を解決するために、SQL Server 2000 の最新の Service Pack の適用をお願いいたします。
最新の SQL Server サービスパックのダウンロードおよびインストールについて詳しくは以下をご覧下さい。

http://www.microsoft.com/japan/sql/download/default.asp (日本語版)
http://www.microsoft.com/sql/downloads/default.htm(英語版)
回避策
可能な場合は、ALL キーワードを使用せず、UNION 演算子のみを使ってクエリを書き直します。
状況
弊社では、これを Microsoft SQL Server version 2000 の問題として確認しています。
この問題は、Microsoft SQL Server version 2000 Service Pack 1 で修正されています。
詳細
このエラーを再現するには、次のスクリプトを実行します。
CREATE TABLE MaxCol(PK INT PRIMARY KEY,f1 INT,f2 INT,mx INT)GOUPDATE MaxColSET mx =    (SELECT MAX(f)    FROM        (        SELECT f1 AS f        FROM MaxCol AS A        WHERE A.PK=MaxCol.PK        UNION ALL        SELECT f2        FROM MaxCol AS B        WHERE B.PK=MaxCol.PK        ) AS TU    )
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 286249 (最終更新日 2001-06-13) をもとに作成したものです。

プロパティ

文書番号:286249 - 最終更新日: 01/16/2015 21:28:42 - リビジョン: 2.1

  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive kbbug kbfix kbsqlserv2000bug kbsqlserv2000sp1fix KB286249
フィードバック