Доброго времени суток.
В свое время воозник вопрос с хранением быкапов базы (по умолчанию в MSSQL2000 нет возможности быкапить по сетевому адресу). Описываю один из методов как это обойти.
После того, как отработает бэкап базы, нжно запустить следующую процедуру:
declare @copy_comand as varchar(1000)
declare @archive_comand as varchar(1000)
--Задаем каманду на архивацию сегодняшнего бэкапа с сохранением на другом компьютере и с последующим удалением в текущем каталоге
select @archive_comand='exec master..xp_cmdshell '+'''"C:\Program Files\WinRAR\rar" a -df \\It7\share_fld\MSSQLBackUp\Lgota2007_db_'
+replace(convert(varchar(11),getdate(),102),'.','')+'0300'+' C:\Distrib\Lgota2007\Lgota2007_db_'+
+replace(convert(varchar(11),getdate(),102),'.','')+'0300'+'.bak'''
exec (@archive_comand)
-- формируем строку для копирования базы (не требуется, т.к. архив создается сразу по нужному пути)
/*select @copy_comand='xcopy C:\Distrib\Lgota2007\' +'Lgota2007_db_'+replace(convert(varchar(11),getdate(),102),'.','')+'0300'+
'.rar'+' \\It7\share_fld\MSSQLBackUp\ /s /e /y'
-- непосредственное копирование базы по указоному пути
exec master..xp_cmdshell @copy_comand*/
DECLARE @dir varchar(1000)
DECLARE @SQL varchar(1000)
declare @i int
select @i=4
while @i<15 begin
-- Формируем строку для пути из которого будет удаляться база старше 4 дней (проверка идет на 14-ти дневное устаревание)
select @dir='''\\It7\share_fld\MSSQLBackUp\'+'Lgota2007_db_'+replace(convert(varchar(11),dateadd(dd,-@i,getdate()),102),'.','')+'0300'+'.rar'''
-- скрепляем все в динамический запрос, который осуществляет проверку на существование указанного пути, если есть, то удаляем базу
select @SQL='DECLARE @file_exists int, @delete_command varchar(1000) EXECUTE MASTER..xp_fileexist ' +@dir+','
+ '@file_exists OUTPUT if @file_exists=1 begin'
+
' select @delete_command='+'''del \\It7\share_fld\MSSQLBackUp\Lgota2007_db_'+replace(convert(varchar(11),dateadd(dd,-@i,getdate()),102),'.','')
+'0300'+'.rar'''
+' exec master..xp_cmdshell @delete_command end'
exec(@SQL)
select @i=@i+1
end
я все навесли на DTS-ник.