SQL LocalDB-删除数据库文件后无法删除

Luk*_*ett 1 ssms localdb

如何删除已删除文件的SQL LocalDB数据库?

删除数据库将产生以下消息:

无法打开物理文件“ C:\ Users \ Public \ Documents \ LocalDB.Tests.3d0d7339-7cf2-45fe-a83b-b5079112ab80.mdf”。操作系统错误2:“ 2(系统找不到指定的文件。)”。

文件激活失败。物理文件名“ C:\ Users \ Public \ Documents \ LocalDB.Tests.3d0d7339-7cf2-45fe-a83b-b5079112ab80_log.ldf”可能不正确。

运行master.sp_databases实际上不会显示它们,但是Management Studio会显示它们。

小智 5

我假设您正在使用与 SQL Server 2012 捆绑在一起的 (localdb)。

\n\n

如果您使用的是 SQL Server 2014,请使用 (localdb)\\MSSQLLocalDB代替下面的(localdb)\\v11.0

\n\n
    \n
  • 打开命令提示符
  • \n
  • 如果 localDb 实例尚未运行,则启动它:\xe2\x80\x9cC:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn\\sqllocaldb.exe\xe2\x80\x9d start \xe2\x80\x9cv11.0\xe2\x80\xb3
  • \n
  • 通过运行以下命令删除 localDb 数据库:\xe2\x80\x9cC:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn\\sqlcmd\xe2\x80\x9d -S (localdb)\\v11.0 -E -d master -Q \xe2\x80\x9cDROP DATABASE [myDatabase]\xe2\x80\x9d
  • \n
  • 您现在可以停止 localDb 服务:\xe2\x80\x9cC:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn\\sqllocaldb.exe\xe2\x80\x9d stop \xe2\x80\x9cv11.0\xe2\x80\xb3
  • \n
\n\n

来源:http ://kazimnami.azurewebsites.net/techblog/2013/02/27/delete-localdb-database-after-physical-files-have-been-deleted/

\n


Cli*_*int 5

问题在于,当物理文件已被删除或找不到时,您正在尝试删除数据库。

为了解决这个问题,您可以分离数据库。分离将删除数据库,而不会尝试从文件系统中删除文件。

EXEC sp_detach_db 'My_Db'
Run Code Online (Sandbox Code Playgroud)