如何删除已删除文件的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
实际上并没有显示它们,但是管理工作室会这样做。
答案 0 :(得分:4)
问题是当您删除物理文件或找不到物理文件时,您试图删除数据库。
要解决此问题,您可以分离数据库。分离将删除数据库而不尝试从文件系统中删除该文件。
EXEC sp_detach_db 'My_Db'
答案 1 :(得分:2)
我假设您正在使用与SQL Server 2012捆绑在一起的(localdb)。
如果您正在使用SQL Server 2014,使用(localdb)\ MSSQLLocalDB 代替下面的(localdb)\ v11.0
“C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqllocaldb.exe” start “v11.0″
“C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd” -S (localdb)\v11.0 -E -d master -Q “DROP DATABASE [myDatabase]”
“C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqllocaldb.exe” stop “v11.0″