Sql-Server
如何快速收縮所有數據庫的所有文件?
在 SQL Server(本例中為 2008)中,如何快速收縮實例上所有數據庫的所有文件,包括日誌和數據?我可以通過 SSMS 並右鍵點擊每個並選擇 Tasks -> Shrink,但我正在尋找更快的東西。
我編寫了一些“創建數據庫”腳本並忘記了它們的預設大小已經膨脹,並且不需要為該項目中的這些文件保留那麼多空間。
DBCC SHRINKDATABASE
當您從 GUI 執行“Tasks -> Shrink”時,它實際上會在幕後發出命令。試試吧。當對話框出現時,不要點擊“確定”按鈕。相反,點擊“腳本”按鈕。您將在查詢視窗中看到該命令。將它與 sys.databases 上的查詢結合起來(省略 master 和 msdb),您可以編寫一個腳本來縮小所有數據庫。例如(取自 jcolebrand 的評論):
SELECT 'USE [' + d.name + N']' + CHAR(13) + CHAR(10) + 'DBCC SHRINKFILE (N''' + mf.name + N''' , 0, TRUNCATEONLY)' + CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10) FROM sys.master_files mf JOIN sys.databases d ON mf.database_id = d.database_id WHERE d.database_id > 4;
複製該查詢的輸出並執行它以縮小所有文件。