之前寫的一篇[MSSQL]DB log減肥、資料表佔用空間筆記,在今天的一台 SQL 2000 出現了一些狀況
執行 DBCC SHRINKFILE ([DB_NAME],size) 之後出現以下問題
伺服器: 訊息 8985,層級 16,狀態 1,行 1
無法將檔案 ‘DB_Name_log’ 放到 sysfiles。
DBCC 的執行已經完成。如果 DBCC 印出錯誤訊息,請聯絡您的系統管理員。
查了一下 sysfiles 發現 filename 跟 DB_name 不同,所以使用 DB_NAME 造成無法清除 LDF
Select DB_NAME From sysfiles
既然是這樣那就用 fileid 來當條件一樣可以清除交易紀錄
DBCC SHRINKFILE (2,200)
註: DBCC SHRINKFILE ([Fileid],size)
參考資料
http://www.karaszi.com/SQLServer/info_dont_shrink.asp