web-dev-qa-db-ja.com

ファイルがなくなった場合に(localdb)データベースを削除する方法

SQL Server Management Studioを実行して、(localdb)\ v11.0に接続するように指示すると、ほとんどのデータベースファイルがなくなっているにもかかわらず、これまでに使用したすべてのデータベースが認識されます。

これらのデータベースの1つを削除するように依頼すると、データベースファイルがなくなったため(データベース)DROPできないというメッセージが表示されます。では、この混乱をクリーンアップして、関連するデータベースファイルがなくなったデータベース参照をすべて削除するにはどうすればよいでしょうか。

ボブ

35

この状況では、データベースを削除しようとするのではなく、デタッチしてください。 SQL Management Studioでデータベースを右クリックし、[タスク]、[分離]の順に選択します。

32
IRM

SQL 2012でテストされたインスタンスを再作成するだけです。管理者権限でコマンドプロンプトに移動し、次のように入力します。

//list the instancies
sqllocaldb i

//stop selected instance
sqllocaldb p "selected instance"

//delete
sqllocaldb d "selected instance"

//recreate or create new one 
sqllocaldb c "new instance"
17

私も同じ問題を抱えていました。最初にコードを使用してDBを設計するときは、古いDBを削除するだけです。 SQL Server Management Studioに複数の削除されたDBが表示されます。次に、DBをクエリしようとすると、削除されたものの中から正しいDBインスタンスを見つけるのが難しくなります。

IRMが提案したように、私はそれらの削除されたDBを切り離そうとしましたが、それらのいくつかにとってはそれはうまく機能します!

しかし、まだいくつか残っています。次に、それらのDBで「オフラインにする」を試みました。 DBをオフラインにしようとするたびに、SQL Server Management Studioがクラッシュしました。 SQL Server Management Studioを再起動した後、DBはなくなりました。そのため、デタッチと削除が機能しない場合は、「オフラインにする」を試してください。

13
Qixing

私は何百ものこれらを集めました、そして、それらを個別に切り離すことはあまりに退屈な退屈過ぎました。

私がしたこと:

SELECT 'EXEC sp_detach_db ''' + name + ''''
FROM sys.databases
;

これは私にexecコマンドのリストを与えました:

EXEC sp_detach_db 'E:\...\ADATABASE.MDF'
EXEC sp_detach_db 'E:\...\ANOTHERDATABASE.MDF'
EXEC sp_detach_db 'E:\...\ATHIRDDATABASE.MDF'
....
EXEC sp_detach_db 'master'
EXEC sp_detach_db 'model'
EXEC sp_detach_db 'msdb'
EXEC sp_detach_db 'tempdb'

結果をコマンドウィンドウにコピーして戻し、システムデータベース以外のすべてを強調表示して実行します。

6
Jeff Dege