数据库“ [DatabaseName]”已存在。选择其他数据库名称

Ste*_*aul 9 entity-framework-core sql-server-2016 asp.net-core

我正在按照本指南说明使用Entity Framework核心的代码优先方法。迁移工作正常,直到某个时候我删除了.mdf文件。从那时起,执行Update-Database(以应用我的迁移)会引发以下错误: Database 'DatabaseName' already exists. Choose a different database name.

这个数据库到底在哪里?如何将其永久删除?

根据答案,我需要从Sql Server分离数据库,但现在不确定如何执行此操作。在Sql Server Management Studio中,如果执行sp_detach_db DatabaseName则抛出错误The database 'DatabaseName' does not exist. Supply a valid database name.

提前致谢。

更新 我看到,database already exists如果我在SQL Server Management Studio中附加了数据库并执行Update-Database命令,我也可以重现此错误。关闭Management Studio后,将应用迁移而不会出现此错误。我很困惑

cha*_*ier 8

似乎LocalDB的实例仍在后台运行。在控制台中执行以下命令以停止和删除实例。

sqllocaldb stop
sqllocaldb delete
Run Code Online (Sandbox Code Playgroud)

现在,Update-Database命令应该没有问题。


小智 7

请查看SQL Server对象资源管理器(Visual Studio->视图-> SQL Server对象资源管理器)。如果它包含“ DatabaseName”数据库,请尝试将其删除。


小智 0

它可能是本地数据库。尝试连接到本地数据库

(LocalDb)\MSSQLLocalDB
Run Code Online (Sandbox Code Playgroud)

并查看数据库是否位于那里。您可能需要从 SSMS 中删除它