web-dev-qa-db-ja.com

データベース '[DatabaseName]'は既に存在します。別のデータベース名を選択してください

私はフォローしています このガイド EntityFrameworkコアを使用したコードファーストのアプローチを示しています。ある時点で.mdfファイルを削除するまで、移行は正しく機能していました。それ以降、(移行を適用するために)Update-Databaseを実行すると、次のエラーがスローされます。Database 'DatabaseName' already exists. Choose a different database name.

このデータベースは正確にはどこにありますか?どうすれば完全に削除できますか?

this の回答によると、データベースをSQL Serverからデタッチする必要がありますが、今はその方法がわかりません。 SQL Server Management Studioで、sp_detach_db DatabaseNameを実行すると、エラーThe database 'DatabaseName' does not exist. Supply a valid database name.がスローされます。

前もって感謝します。

[〜#〜] update [〜#〜]データベースをSQLで接続している場合、このdatabase already existsエラーも再現できるようですServer Management Studioで、Update-Databaseコマンドを実行します。 Management Studioを閉じると、このエラーなしで移行が適用されます。私には非常に混乱しています。

12
Stephen Paul

LocalDBのインスタンスがまだバックグラウンドで実行されているようです。コンソールで次のコマンドを実行して、インスタンスを停止および削除します。

sqllocaldb stop
sqllocaldb delete

Update-Databaseコマンドで問題が発生することはありません。

13
chaosifier

SQL Serverオブジェクトエクスプローラーを確認してください(VisualStudio->表示-> SQL Serverオブジェクトエクスプローラー)。 'DatabaseName'データベースが含まれている場合は、削除してみてください。

7

ローカルDBの可能性があります。ローカルDBに接続してみてください

(LocalDb)\MSSQLLocalDB

そして、DBがそこにあるかどうかを確認します。 SSMSから削除する必要があるかもしれません

0
rborob

SQLを使用してデータベースを作成する場合(つまり、DBがすでに存在する場合)、次の行を入力しますDROP DATABASE [databaseName]ファイルの先頭databaseName.sql

これにより、DB全体とその定義(スキーマ)が削除され、新しいDBの作成を開始できます。

0
sosay

Web.configファイルの「xxxxx-20170604092712」の番号コードを変更してみてください。

次に、「update-database」を再度実行します。これは私のために働いた。

0
Mystic Lin