如果我运行SQL Server Management Studio中,并告诉它连接到(的LocalDB)\ V11.0,它知道我用过大约每个数据库,尽管大部分数据库文件早已不复存在。
如果我要求它删除这些数据库之一,它抱怨,由于数据库文件已经一去不复返了它不能删除数据库(duhhh)。 所以,我怎么收拾这个烂摊子,并删除所有数据库引用其assicated数据库文件都没有了吗?
短发
如果我运行SQL Server Management Studio中,并告诉它连接到(的LocalDB)\ V11.0,它知道我用过大约每个数据库,尽管大部分数据库文件早已不复存在。
如果我要求它删除这些数据库之一,它抱怨,由于数据库文件已经一去不复返了它不能删除数据库(duhhh)。 所以,我怎么收拾这个烂摊子,并删除所有数据库引用其assicated数据库文件都没有了吗?
短发
在这种情况下,分离数据库,而不是试图将其删除。 在SQL Management Studio中,在数据库上单击右键,选择“任务”,然后“分离”。
所有你需要做的是重新创建实例,与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"
我有同样的问题。 设计DB首先使用代码的时候,我只是删除旧数据块。 它结束了与多个删除的数据块出现在SQL Server Management Studio中。 然后,当我尝试查询数据库,就很难找到跻身删除正确的数据库实例。
作为IRM的建议,我想分离这些已删除的数据块,并为其中一些它的伟大工程!
不过我还是有几个左侧。 然后我试图对这些数据块“拿离线”。 当我试图把DB下线每一次,SQL Server Management Studio中坠毁。 SQL Server Management Studio中重新启动后,DB不见了。 因此,尝试做“脱机”如果分离并删除不为你工作。
我已经收集了数百个的这些,和分离它们分别是太该死的繁琐。
我做了什么:
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'
将结果复制到命令窗口,选择其他的一切比系统数据库,并执行。