如何删除(的LocalDB)数据库,如果该文件是走了(How to delete (localdb)

2019-07-03 21:04发布

如果我运行SQL Server Management Studio中,并告诉它连接到(的LocalDB)\ V11.0,它知道我用过大约每个数据库,尽管大部分数据库文件早已不复存在。

如果我要求它删除这些数据库之一,它抱怨,由于数据库文件已经一去不复返了它不能删除数据库(duhhh)。 所以,我怎么收拾这个烂摊子,并删除所有数据库引用其assicated数据库文件都没有了吗?

短发

Answer 1:

在这种情况下,分离数据库,而不是试图将其删除。 在SQL Management Studio中,在数据库上单击右键,选择“任务”,然后“分离”。



Answer 2:

所有你需要做的是重新创建实例,与2012 SQL测试! 刚进去有管理员权限,键入命令提示符:

//list the instancies
sqllocaldb i

//stop selected instance
sqllocaldb p "selected instance"

//delete
sqllocaldb d "selected instance"

//recreate or create new one 
sqllocaldb c "new instance"


Answer 3:

我有同样的问题。 设计DB首先使用代码的时候,我只是删除旧数据块。 它结束了与多个删除的数据块出现在SQL Server Management Studio中。 然后,当我尝试查询数据库,就很难找到跻身删除正确的数据库实例。

作为IRM的建议,我想分离这些已删除的数据块,并为其中一些它的伟大工程!

不过我还是有几个左侧。 然后我试图对这些数据块“拿离线”。 当我试图把DB下线每一次,SQL Server Management Studio中坠毁。 SQL Server Management Studio中重新启动后,DB不见了。 因此,尝试做“脱机”如果分离并删除不为你工作。



Answer 4:

我已经收集了数百个的这些,和分离它们分别是太该死的繁琐。

我做了什么:

SELECT 'EXEC sp_detach_db ''' + name + ''''
FROM sys.databases
;

这给了我EXEC命令的列表:

EXEC sp_detach_db 'E:\...\ADATABASE.MDF'
EXEC sp_detach_db 'E:\...\ANOTHERDATABASE.MDF'
EXEC sp_detach_db 'E:\...\ATHIRDDATABASE.MDF'
....
EXEC sp_detach_db 'master'
EXEC sp_detach_db 'model'
EXEC sp_detach_db 'msdb'
EXEC sp_detach_db 'tempdb'

将结果复制到命令窗口,选择其他的一切比系统数据库,并执行。



文章来源: How to delete (localdb) database if the file is gone