回避策を試すことができます。要するに:
- 同じ名前のダミーDBを作成します(最初に実際のDBを削除するか、元のファイルを保存するか、名前を変更する必要がある場合があります)。
- ダミーをオフラインにします(デタッチして(オフラインに設定するか、SQLサービスを停止します))。
- ダミーファイルを削除してから、実際のDBファイルに置き換えます。
- deDBを再接続してみてください
編集
OPコメントノートのように、ログを再構築する必要がある場合もあります(トランザクションを失った場合)
-
ALTER DATABASE [MyDatabase] REBUILD LOG ON(NAME =’MyDatabaseLog’、FILENAME =’D:\ Microsoft SQL Server \ YourDataPath \ Data \ Logfile.ldf’)
DBを複数のユーザーのログに記録します(DBをオフにすると、シングルユースモードにする必要がある場合があります)
-
ALTER DATABASE [nomdb] SET MULTI_USER
すべてのマチの詳細については、 Paul Randal Article
(この記事では、作成者がEMERGENCY MODEを使用してトランザクションログを(試行)修復していることに注意してください)
私はすでにそれを成功裏に使用しましたが、損傷の程度や他の詳細によっては、それは不可能な作業になる可能性があります。バックアップの復元を検討してください。
このスタントは開発サーバーでは問題ありませんが、生産サーバーでのディザスタリカバリを計画(およびドリル)する必要があることに注意してください。