利用未文件化的擴展預存程序 master.dbo.xp_delete_file 定期刪除舊備份檔。
DECLARE @d NVARCHAR(64);
SET @d = CONVERT(VARCHAR, DATEADD(DAY, -5, GETDATE()), 120); -- 5 天前日期 (YYYY-MM-DD HH:MI:SS)
EXECUTE master.dbo.xp_delete_file 0, N'D:\databack\GFSM', N'bak', @d;
EXECUTE master.dbo.xp_delete_file 0, N'D:\databack\GFSM_KEY', N'bak', @d;
| 參數 | 值 | 說明 |
|---|---|---|
| 第 1 參數 | 0 | 檔案類型:0=備份檔、1=報表檔 |
| 第 2 參數 | 目錄路徑 | 備份檔所在資料夾 (Unicode 字串) |
| 第 3 參數 | 副檔名 | 不含點號,如 'bak' |
| 第 4 參數 | 截止日期 | 早於此日期的檔案將被刪除 (格式 120: YYYY-MM-DD HH:MI:SS) |
PRINT @d 確認日期格式正確xp_delete_file 為非文件化功能,未來版本可能移除。長期建議改用 PowerShell / Maintenance Plan / 自訂 CLR 程序實現相同功能。