[FIX] 破損したインデックスによって DBCC CHECKTABLE が失敗

文書翻訳 文書翻訳
文書番号: 299323 - 対象製品
この記事は、以前は次の ID で公開されていました: JP299323
すべて展開する | すべて折りたたむ

現象

インデックスが破損しているテーブルで DBCC CHECKTABLE を実行すると、次のエラー メッセージが表示され、チェックが終了することがあります。
[Microsoft][ODBC SQL Server Driver][名前付きパイプ]ConnectionCheckForData (PeekNamedPipe()).
[Microsoft][ODBC SQL Server Driver][名前付きパイプ]接続が解除されました。

解決方法

この問題を解決するために、SQL Server 2000 の最新の Service Pack の適用をお願いいたします。
最新の SQL Server サービスパックのダウンロードおよびインストールについて詳しくは以下をご覧下さい。

http://www.microsoft.com/japan/sql/download/default.asp (日本語版)
http://www.microsoft.com/sql/downloads/default.htm(英語版)

回避策

  1. データベース オブジェクトをスクリプトとして出力します。たとえば、新しいデータベースにデータを一括コピー (bcp) 出力および bcp 入力します。
  2. 自動的に作成された統計をすべて削除します。

状況

弊社では、これを Microsoft SQL Server version 2000 の問題として確認しています。
この問題は、Microsoft SQL Server version 2000 Service Pack 1 で修正されています。

詳細

SQL Server 2000 Service Pack 1 (SP1) 以前では、(接続が解除されるときに) 次のテキストがエラー ログに記録されます。
Short Stack Dump
77F810B5 Module(ntdll+000010B5) (NtGetContextThread+0000000B) 
0092569E Module(sqlservr+0052569E) (utassert_fail(enum UTASSERT_TYPE,char const *,char const *,int,char const *,...)+000002E9) 
0083A351 Module(sqlservr+0043A351) (LatchBase::Release(enum LatchBase::LATCH_TYPE)+00000039) 
008E0365 Module(sqlservr+004E0365) (CheckResultSet::Set(class PageId const &,int,unsigned short,int,unsigned short,class PageId const &,int,int,int,int,long,int,unsigned short const *,int,int const * const,short,int,unsigned char const *,int,int)+000004 
77E8314D Module(KERNEL32+0000314D) (SetEvent+0000000C)
-------------------------------------------------------------------------------
2001-05-21 16:09:26.17 spid51    SQL Server アサーション : ファイル: <latch.cpp>、行 = 799
失敗したアサーション = 'type > NL && type < LASTLATCH'。
2001-05-21 16:09:26.26 spid51    エラー : 3624、レベル : 20、状態 : 1

SQL Server 2000 SP1 では、次のエラーが発生します。
サーバー : メッセージ 8929、レベル 16、状態 1、行 1
オブジェクト ID 1549468469 : RID = (1:359718:4) OBJECTID1 = 1 and OBJECTVALUE1 = 'FUNCLIB_EN ' and OBJECTID2 = 2 and OBJECTVALUE2 = 'EXPL_BOM_SQL ' and OBJECTID3 = 12 and OBJECTVALUE3 = 'FieldF で識別されるデータ レコードが所有するテキスト ID 105872687104 でエラーが見つかりました。

サーバー : メッセージ 8965、レベル 16、状態 1、行 1
テーブル エラー : オブジェクト ID 1549468469。ページ (1:362025)、スロット 1、テキスト ID 105872687104 の TEXT、NTEXT、または IMAGE ノードは、ページ (1:183752)、スロット 8 が参照していますが、スキャンで見つかりませんでした。
'PSPCMPROG' に対する DBCC の結果。
オブジェクト 'PSPCMPROG' の 1893 ページの中に 44936 行あります。
CHECKTABLE は 0 個のアロケーション エラーと 2 個の一貫性エラーを見つけました、テーブル 'PSPCMPROG' (オブジェクト ID 1549468469)。
repair_allow_data_loss は DBCC CHECKTABLE (xyz.dbo.PSPCMPROG) が見つけたエラーの最小修復レベルです。
: NOINDEX を使用して実行する場合は、エラーまたは接続の終了は発生しません。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 299323 (最終更新日 2001-06-15) をもとに作成したものです。


プロパティ

文書番号: 299323 - 最終更新日: 2003年11月11日 - リビジョン: 2.1
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2000 Standard Edition
キーワード:?
kbbug kbfix kbsqlserv2000bug kbsqlserv2000sp1fix KB299323
"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