[FIX] SQL Server 2000 SP3 でエラー メッセージ "更新に必要なキー列の情報が足りません" が表示される

文書翻訳 文書翻訳
文書番号: 814893 - 対象製品
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
すべて展開する | すべて折りたたむ

目次

現象

この問題は、以下のいずれかの場合に発生します。
  • 次の資料に記載されている修正プログラムを Microsoft SQL Server 2000 Service Pack 2 (SP2) を実行しているコンピュータに適用した場合
    321541 [FIX] 外部結合およびビューを使用すると SQL Server から返される結果が正しくないことがある
  • マイクロソフト セキュリティ情報 MS02-061 に記載されている、Microsoft SQL Server 2000 SP2 用のセキュリティ修正プログラムを適用した場合
  • Microsoft SQL Server 2000 Service Pack 3 (SP3) を適用した場合
次のエラー メッセージが表示されることがあります。
更新に必要なキー列の情報が足りません。

解決方法

Service Pack の情報

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

修正プログラムの情報

修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。ファイル情報に表示される時刻は、ローカル時刻に変換されています。UTC とローカル時刻との時差を確認するには、コントロール パネルの [日付と時刻] の [タイム ゾーン] タブを使用してください。
   日付            時刻    バージョン           サイズ            ファイル名
   ------------------------------------------------------------------
   08-Feb-2003  05:43                    786,432 bytes  Distmdl.ldf
   08-Feb-2003  05:43                  2,359,296 bytes  Distmdl.mdf
   01-Feb-2003  00:32  2000.80.763.0   1,557,052 bytes  Dtsui.dll
   30-Jan-2003  05:18                    746,470 bytes  Instdist.sql
   08-Feb-2003  06:40  2000.80.765.0      90,692 bytes  Msgprox.dll      
   08-Feb-2003  03:53                  1,065,895 bytes  Replmerg.sql
   08-Feb-2003  06:40  2000.80.765.0     221,768 bytes  Replprov.dll
   08-Feb-2003  06:40  2000.80.765.0     307,784 bytes  Replrec.dll      
   30-Jan-2003  05:18                  1,084,318 bytes  Replsys.sql
   08-Feb-2003  06:40  2000.80.765.0     176,696 bytes  Sqlmap70.dll     
   08-Feb-2003  06:40  2000.80.765.0      57,920 bytes  Sqlrepss.dll     
   15-Feb-2003  02:52  2000.80.769.0   7,512,145 bytes  Sqlservr.exe     
   15-Feb-2003  02:52                 12,715,008 bytes  Sqlservr.pdb
   08-Feb-2003  06:40  2000.80.765.0      45,644 bytes  Sqlvdi.dll       
   08-Feb-2003  06:40  2000.80.765.0      82,492 bytes  Ssnetlib.dll     
				
: ファイルの依存関係のため、最新の修正プログラムまたは機能には上記以外の追加ファイルが含まれていることがあります。

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。 この問題は、Microsoft SQL Server 2000 Service Pack 4 で最初に修正されました。

詳細

この資料に記載されている修正プログラムを適用すると、次の「サポート技術情報」 (Microsoft Knowledge Base) の資料で説明されている修正点が以前の状態に戻ります。
321541 [FIX] 外部結合およびビューを使用すると SQL Server から返される結果が正しくないことがある


: この資料に記載されている修正プログラムを使用できるようにするには、トレース フラグ -T220 を有効にし SQL Server を再起動する必要があります。

トレース フラグを有効にするには、次の手順を実行します。
  1. サーバーで SQL Enterprise Manager を起動します。
  2. 問題が発生しているサーバーをクリックします。
  3. サーバーを右クリックし、[プロパティ] をクリックします。
  4. [全般] タブで、[起動時のパラメータ] をクリックします。
  5. [起動時のパラメータ] ダイアログ ボックスで、-T220 と入力し [追加] をクリックします。
  6. [OK] をクリックします。
  7. SQL Server を再起動するために、Mssqlserver サービスを停止して再開します。

問題の例とトレース フラグ -T220 の内容を以下に示します。
この例では、Test_Table1 および Test_Table2 という 2 つのサンプル テーブルを使用します。次のテーブルとビューを想定しています。
CREATE TABLE TEST_TABLE1 ( 
[CODE] [int] NOT NULL PRIMARY KEY, 
[DESCRIPTION] [varchar] (50)) 

CREATE TABLE TEST_TABLE2 ( 
[CODE] [int] NOT NULL PRIMARY KEY, 
[DESCRIPTION] [varchar] (50)) 
go
CREATE VIEW dbo.TEST_VIEW 
AS 
SELECT CODE, 
UPPER(DESCRIPTION) AS DESCRIPTION, 
ISNULL(UPPER(DESCRIPTION), 'DEFAULT') DESCRIPTION_DEF 
FROM dbo.TEST_TABLE2 
go
ここで、以下のコードを実行します。
DECLARE cc CURSOR FOR 
SELECT TEST_TABLE1.CODE, TEST_VIEW.DESCRIPTION, TEST_VIEW.DESCRIPTION_DEF 
FROM TEST_TABLE1 LEFT OUTER JOIN TEST_VIEW 
ON TEST_VIEW.CODE = TEST_TABLE1.CODE 
FOR UPDATE
  • SQL Server 2000 SP2 より前のバージョンの SQL Server 2000 にマイクロソフト セキュリティ情報 MS02-061 に記載されているセキュリティ修正プログラムをインストールした場合、コードは正常に実行されます。
  • SQL Server 2000 SP2 より後のバージョンの SQL Server 2000 にマイクロソフト セキュリティ情報 MS02-061 に記載されているセキュリティ修正プログラムをインストールした場合、コードは正常に実行されません。
  • SQL Server 2000 のバージョン 8.00.0769 以降でトレース フラグ -T220 または DBCC traceon (220) を使用した場合、コードは正常に実行されます。
また、SELECT ステートメントでは同じ結果にならないことに注意してください。
  • SQL Server 2000 SP2 より前のバージョンの SQL Server 2000 にマイクロソフト セキュリティ情報 MS02-061 に記載されているセキュリティ修正プログラムをインストールしたか、バージョン 8.00.0769 以降でトレース フラグ 220 を使用した場合、次のような結果になります。

    CODE        DESCRIPTION                                        DESCRIPTION_DEF                                    
    ----------- -------------------------------------------------- -------------------------------------------------- 
    1           NULL                                               DEFAULT
    
    
  • SQL Server 2000 SP2 より後のバージョンの SQL Server 2000 にマイクロソフト セキュリティ情報 MS02-061 に記載されているセキュリティ修正プログラムをインストールした場合、次のような結果になります。

    CODE        DESCRIPTION                                        DESCRIPTION_DEF                                    
    ----------- -------------------------------------------------- -------------------------------------------------- 
    1           NULL                                               NULL
    

プロパティ

文書番号: 814893 - 最終更新日: 2014年2月27日 - リビジョン: 4.3
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2000 Service Pack 3
キーワード:?
kbnosurvey kbarchive kbhotfixserver kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB814893
"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