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

时间:2016-01-20 16:26:34

标签: 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实际上并没有显示它们,但是管理工作室会这样做。

2 个答案:

答案 0 :(得分:4)

问题是当您删除物理文件或找不到物理文件时,您试图删除数据库。

要解决此问题,您可以分离数据库。分离将删除数据库而不尝试从文件系统中删除该文件。

EXEC sp_detach_db 'My_Db'

答案 1 :(得分:2)

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

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

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

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