2012-11-16 38 views
32

如果我運行SQL Server Management Studio,並告訴它連接到(localdb)\ v11.0,它知道我曾經使用過的每個數據庫,儘管事實上大部分數據庫文件早已不復存在。如何刪除(localdb)數據庫,如果文件不存在

如果我要求它刪除這些數據庫之一,它抱怨,由於數據庫文件已經一去不復返了它不能刪除數據庫(duhhh)。那麼,我該如何清理這個混亂,並刪除所有數據庫引用的輔助數據庫文件都不見了?

鮑勃

回答

29

在這種情況下,請分離數據庫而不是嘗試刪除它。在SQL Management Studio中,右鍵單擊數據庫,選擇「任務」,然後選擇「分離」。

+4

當您嘗試執行此操作時,SSMS 2012中的奇怪錯誤;如果您嘗試刪除數據庫並獲得最初提到的錯誤消息,則「分離」窗口將不再起作用。您需要斷開連接並重新連接到數據庫服務器以使其再次工作。 – CodingWithSpike

+0

數據庫沒有顯示在我的分離列表中,但它仍然列在數據庫服務器(2016) – Damien

1

它似乎有「固定本身」(或多或少)。當我今天早上在SQL Server Management Studio中查看(localdb)\ v11.0時,所有舊數據庫都沒有了。

儘可能靠近我可以告訴大家,它必須儘管它抱怨說,它不能這樣做刪除其對它們的引用。

也許某些SQL Server大師(或實踐經驗一點點至少某人)可以添加一些啓示?

13

我有同樣的問題。首先使用代碼設計數據庫時,我只需刪除舊的數據庫。它最終會出現在SQL Server Management Studio中的多個已刪除的數據庫。然後,當我嘗試查詢數據庫時,很難從已刪除的數據庫中找到正確的數據庫實例。

由於IRM的建議,我想分離這些已刪除的數據塊,併爲其中一些它的偉大工程!

不過我還剩幾個。然後,我嘗試在這些數據庫上「脫機」。每當我試圖使數據庫脫機時,SQL Server Management Studio都會崩潰。 SQL Server Management Studio重新啓動後,數據庫不見了。因此,如果分離和刪除不適合您,請嘗試「脫機」。

+2

有趣的事實:3年後,Management Studio 2014在執行此操作時仍然崩潰! – Malachi

16

您只需重新創建實例,並使用SQL 2012進行測試! 剛進去的命令提示符下使用管理員權限,輸入:

//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" 
+0

如果使用數據庫,則必須使用下一個命令停止它:sqllocaldb stop「selected instance」。 – RredCat

+0

「stop」的簡稱只是「p」 –

2

我倒是收集了數百個的這些,和分離它們分別是太該死的繁瑣。

我做了什麼:

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' 

複製結果返回到命令窗口,選擇其他的一切比系統數據庫,並執行。

相關問題