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″
问题是当物理文件已被删除或找不到时,您正试图删除数据库。
要解决此问题,您可以分离数据库。分离将删除数据库而不尝试从文件系统中删除文件。
EXEC sp_detach_db 'My_Db'
如何删除已删除文件的 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″
问题是当物理文件已被删除或找不到时,您正试图删除数据库。
要解决此问题,您可以分离数据库。分离将删除数据库而不尝试从文件系统中删除文件。
EXEC sp_detach_db 'My_Db'