データベースMsがあります
DBCC CHECKDB (MS)
または
ALTER DATABASE MS SET SINGLE_USER
DBCC CHECKDB(MS,REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE MS SET MULTI_USER
エラーメッセージ
メッセージ0、レベル11、状態0、行0:
現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。メッセージ0、レベル20、状態0、行0:
現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。
時間をかけて各テーブルをテストした後、問題のあるテーブルは「LC」であることがわかりました
DBCC CHECKTABLE(LC)
エラーメッセージ
メッセージ211、レベル23、状態51、行1:
スキーマが破損している可能性があります。 DBCC CHECKCATALOGを実行します。
さて、
DBCC CHECKCATALOG
メッセージ
DBCCの実行が完了しました。 DBCCがエラーメッセージを出力した場合は、システム管理者に連絡してください。
インデックスも見てみました
SELECT * FROM sysindexes
エラーメッセージ
メッセージ211、レベル23、状態51、行1:
スキーマが破損している可能性があります。 DBCC CHECKCATALOGを実行します。メッセージ0、レベル20、状態0、行0:
現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。
再び、
SELECT * FROM LC
または
DROP TABLE LC
エラーメッセージ
メッセージ211、レベル23、状態51、行1:
スキーマが破損している可能性があります。 DBCC CHECKCATALOGを実行します。メッセージ0、レベル20、状態0、行0:
現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。
その特定のテーブルのデータ損失は気にしません。テーブルを削除してもらいたいのです。任意のアイデア、助けてください!
あなたはRESTORE
を使うことができ、決して REPAIR_ALLOW_DATA_LOSS
(記事は読む価値があります)!真剣に、どのような量のDBCCブードゥー教でもデータベースを元の正常な状態に戻すことはできません。
これらのタイプのエラーの最も可能性の高い原因は、障害のあるディスクドライブです。トラブルシューティングを続行する前に、ハードディスクを hdtune またはchkdsk /R
でテストします。メモリテストもお勧めします(Windowsメモリ診断と呼ばれる組み込みテストがあります)。
マシンに問題がないことを確認したら、すべての適切なテーブルを新しいデータベースにコピーできます。その後、古いデータベースを削除できます。