SQL Server Management Studioを実行して、(localdb)\ v11.0に接続するように指示すると、ほとんどのデータベースファイルがなくなっているにもかかわらず、これまでに使用したすべてのデータベースが認識されます。
これらのデータベースの1つを削除するように依頼すると、データベースファイルがなくなったため(データベース)DROPできないというメッセージが表示されます。では、この混乱をクリーンアップして、関連するデータベースファイルがなくなったデータベース参照をすべて削除するにはどうすればよいでしょうか。
ボブ
この状況では、データベースを削除しようとするのではなく、デタッチしてください。 SQL Management Studioでデータベースを右クリックし、[タスク]、[分離]の順に選択します。
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"
私も同じ問題を抱えていました。最初にコードを使用してDBを設計するときは、古いDBを削除するだけです。 SQL Server Management Studioに複数の削除されたDBが表示されます。次に、DBをクエリしようとすると、削除されたものの中から正しいDBインスタンスを見つけるのが難しくなります。
IRMが提案したように、私はそれらの削除されたDBを切り離そうとしましたが、それらのいくつかにとってはそれはうまく機能します!
しかし、まだいくつか残っています。次に、それらのDBで「オフラインにする」を試みました。 DBをオフラインにしようとするたびに、SQL Server Management Studioがクラッシュしました。 SQL Server Management Studioを再起動した後、DBはなくなりました。そのため、デタッチと削除が機能しない場合は、「オフラインにする」を試してください。
私は何百ものこれらを集めました、そして、それらを個別に切り離すことはあまりに退屈な退屈過ぎました。
私がしたこと:
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'
結果をコマンドウィンドウにコピーして戻し、システムデータベース以外のすべてを強調表示して実行します。