【问题标题】:SQL LocalDB - Cannot delete a DB when its files are deletedSQL LocalDB - 删除文件时无法删除数据库
【发布时间】:2016-01-20 16:26:34
【问题描述】:

如何删除已删除文件的 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 会显示。

【问题讨论】:

标签: ssms localdb


【解决方案1】:

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

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

EXEC sp_detach_db 'My_Db'

【讨论】:

  • 在看到您的评论之前,我已经以另一种方式修复了它,但我相信其他用户将从您的链接中受益,非常感谢!
【解决方案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/

【讨论】:

  • 它仍然报错,但刷新后,DB节点现在从SSMS中消失了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-02
  • 2018-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多