刪除SQL Server資料庫快照

SQL Server資料庫可以設置定時做資料庫快照,防止數據的丟失。但如果沒有設置合理的定期清理機制,這些快照會越來越多,當需要修改、刪除資料庫時,必須先要刪除這些快照,可微軟沒有提供全部刪除的方法,只能通過drop databse來刪除。最近就遇到了這種問題,2000多個快照,如果手工刪除的話,工作量可想而知。我們也是在苦惱了整整一上午才找到了辦法,下面分享給大家。

工具/原料

電腦
SQL Server資料庫

刪除單個快照

通過右鍵刪除,用滑鼠選中要刪除的快照,點擊滑鼠右鍵,從中選中「刪除」

使用drop database刪除資料庫快照,如刪除快照「test_2017033014」,使用命令:drop database test_2017033014

刪除多個快照

假如要刪除 test_2017031401、test_2017031402和test_2017031403幾個快照,可以寫成:drop database test_2017031401,test_2017031402,test_2017031403,即在多個快照之間添加逗號

刪除全部快照

SQL Server沒有提供刪除全部的功能,只能想其他辦法了。

先在master資料庫中找到系統表sys.databases

查詢表sys.databases,可以看到所有的快照信息,以及所有的資料庫信息

小竅門在這哦。將查詢結果中name一列複製到TXT文件中,刪除除了要刪除的快照之外的信息

【特別要注意】一定要把一些正式資料庫的名稱去掉!!!

刪除不需要刪除的信息後,在txt文檔中打開替換窗口,在資料庫快照名稱前面添加逗號「,」,點擊「全部替換」

複製TXT文件中的信息到資料庫查詢窗口,去掉最前面的逗號「,」,執行命令,刪除全部資料庫快照

注意事項

再次強調,一定要把一些正式資料庫的名稱去掉!!!不然,一些正式資料庫也會被刪除
替換逗號要使用英文逗號
我的資料庫快照命令前綴是相同的,才可以採用全部刪除的方法,根據你的實際情況,需要靈活運用

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場