2015-10-15 83 views
1

我想自動化分離和刪除數據庫的過程(通過VBS objshell.run)如果我手動使用SSMS分離和放下,我可以然後複製到數據庫文件到另一個位置......但是如果我使用:刪除數據庫但不刪除* .mdf/* .ldf

sqlcmd -U sa -P MyPassword -S (local) -Q "ALTER DATABASE MyDB set single_user With rollback IMMEDIATE" 

然後

sqlcmd -U sa -P MyPassword -S (local) -Q "DROP DATABASE MyDB" 

它分離/下降,然後刪除該文件。如何在沒有刪除的情況下獲得分離並刪除?

回答

3

DROP DATABASE MSDN文檔有這麼一段有關刪除的數據庫不刪除文件(一般說明下):

刪除數據庫從SQL Server實例刪除數據庫,並刪除物理磁盤數據庫使用的文件。如果數據庫或其任何文件在脫機時處於脫機狀態,則不會刪除磁盤文件。這些文件可以通過使用Windows資源管理器手動刪除。 要從當前服務器刪除數據庫而不從文件系統中刪除文件,請使用sp_detach_db

因此,爲了使您無需將文件拖放數據庫中獲取與刪除SQLCMD你可以改變它做到這一點:

sqlcmd -U sa -P MyPassword -S (local) -Q "EXEC sp_detach_db 'MyDB', 'true'" 

免責聲明:SQLCMD前但從假設我誠實地沒用過它如何使用的語法我相信這應該可以幫助你解決你的問題。

相關問題