SQLエラー823 I/O error(bad page ID)detected during read【修復方法】


今日、テーブルのクエリー、変更、追加にかかわらず、データベースが破損しました.エラーメッセージは次のとおりです.
I/O error(bad page ID)detected during read at offset 0 x 000000171 a 000 in file“パスファイル”
せつぞくわりこみ
エラーの原因は、1:サーバが正常に動作している間に突然電源が切れ、データベース・ファイルが破損した可能性があります.2:デバイスの読み取りまたは書き込み要求中にI/Oエラーが発生しました.このエラーは、通常、ディスクの問題を示します.しかし、以上の問題は避けられない.幸いなことに、ネット上で解決策が見つかった(以下)この問題が発生した場合、2つの状況があるかもしれない:1:データベースを添付する場合、エラーを提示する:823 2:データベースの追加に成功したが、ある指定表を検索し、修正する場合、I/O error(bad page ID)detected duringエラーが発生しました.解決方法:最初の追加データベースの問題です.参照してください.http://blog.csdn.net/shazhuyubaichi/article/details/66960312つ目の質問:
sp_dboption '    ','single user','true'   
Go   
 
DBCC CHECKDB('    ', REPAIR_ALLOW_DATA_LOSS)   
Go   
 
sp_dboption '    ', 'single user','false'   
Go

幸いなことに、以上の文で修復できます.
以下はネット上の要約です.私はテストしていません.先に記録して、後で役に立つかもしれません.
  1:  DBCC   CHECKDB(‘db_name’,repair_rebuild)   

  2:   1  ,          : 
  ,             (      test),      ,  SQL Server Service Manager,
        MDF     test_data.mdf(           ),
                    ,
  ,       。 Master                  

Use   Master   
Go   

sp_configure 'allow updates ', 1   
reconfigure with override   
Go   

          :   
update sysdatabases set status = 32768 where name = 'database'  
 
       SQL Server Service Manager,   Log  :  
DBCC TRACEON   (3604)   
DBCC REBUILD_LOG( 'test', 'test_log_ldf ')   

            ,      :   
sp_dboption  'test', 'single user ', 'true'   
DBCC   CHECKDB( 'test')   
Go   

      CHECKDB               ,                 :   
DBCC   DBREINDEX(  )   

  3:     ,           .