В итоге я написал сценарий для работы в 1:30 каждый день.Пожалуйста, дайте мне знать, если у вас возникнут какие-либо проблемы.
declare @date as datetime
declare @execsql as nvarchar(max)
Declare mycursor cursor for
WITH BACKUPS AS (
SELECT
msdb.dbo.backupset.backup_start_date,
msdb.dbo.backupmediafamily.physical_device_name, ROW_NUMBER() OVER (PARTITION BY CONVERT(CHAR(100), SERVERPROPERTY('Servername')), msdb.dbo.backupset.database_name, CAST(msdb.dbo.backupset.backup_start_date AS date) ORDER BY backup_start_date) AS RN
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
where physical_device_name like '%_MSDB%')
SELECT backup_start_date, 'xp_cmdshell ''del ' + physical_device_name + ''''
FROM BACKUPS B
WHERE backup_start_date < DATEADD(DAY,-1,CAST(GETDATE() AS DATE))
AND RN<>1
ORDER BY backup_start_date
open mycursor
fetch next from mycursor into @date, @execsql
while @@FETCH_STATUS = 0
begin
print @date
print @execsql
exec(@execsql)
fetch next from mycursor into @date, @execsql
end
close mycursor
deallocate mycursor