Как удалить недельные файлы с помощью T-SQL - PullRequest
2 голосов
/ 20 апреля 2011

Я запускаю скрипт T-SQL ниже, используя агент SQL Server для резервного копирования всех моих баз данных на сервере MSSQLЯ хотел бы улучшить скрипт, добавив опцию удаления недельных резервных копий баз данных из файловой системы.Может ли кто-нибудь указать мне, как это сделать с помощью T-SQL?

DECLARE @name VARCHAR(50) -- database name  
DECLARE @path VARCHAR(256) -- path for backup files  
DECLARE @fileName VARCHAR(256) -- filename for backup  
DECLARE @fileDate VARCHAR(20) -- used for file name 

SET @path = 'C:\www\databases\Backup\'  

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 

DECLARE db_cursor CURSOR FOR  
SELECT name 
FROM master.dbo.sysdatabases 
WHERE name NOT IN ('master','model','msdb','tempdb')  

OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @name   

WHILE @@FETCH_STATUS = 0   
BEGIN   
       SET @fileName = @path + @name + '_' + @fileDate + '.BAK'  
       BACKUP DATABASE @name TO DISK = @fileName  

       FETCH NEXT FROM db_cursor INTO @name   
END   

CLOSE db_cursor   
DEALLOCATE db_cursor

1 Ответ

1 голос
/ 21 апреля 2011

Вы также можете напрямую использовать xp_delete_file (недокументированный), который используют планы обслуживания.

В этом сообщении было больше подробностей о его использовании.

...