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

SQL LocalDB - Cannot delete a DB when its files are deleted

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

删除数据库会产生此消息:

Unable to open the physical file "C:\Users\Public\Documents\LocalDB.Tests.3d0d7339-7cf2-45fe-a83b-b5079112ab80.mdf". Operating system error 2: "2(The system cannot find the file specified.)".

File activation failure. The physical file name "C:\Users\Public\Documents\LocalDB.Tests.3d0d7339-7cf2-45fe-a83b-b5079112ab80_log.ldf" may be incorrect.

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

我假设您使用的是 SQL Server 2012 捆绑的 (localdb)。

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

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

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

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

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

EXEC sp_detach_db 'My_Db'