Создаем файл backup.bat со следующим содержимым
@chcp 1251
del "D:\Backup\log.txt" // путь до логов
sqlcmd -S SQL\SQLEXPRESS -i D:\Backup\connect.sql -o "D:\Backup\log.txt"
forfiles /p D:\Backup\ /m *.bak /s /d -10 /c "cmd /c del @path /q" // срок хранения 10 дней
del "D:\<имя базы>.bak" // удаление предыдущих копий
echo Y| rd %SystemDrive%\RECYcl- e.bin // очистка корзины
exit
Создаем файл connect.sql со следующим содержимым
BACKUP DATABASE [<имя базы>] TO DISK = N'D:\<имя базы>.bak' WITH NOFORMAT, NOINIT, NAME = N'<имя базы>-Полная База данных Резервное копирование', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
--path - переменная, в которой хранится путь к файлу бэкапа
--ШАГ 1 - Создание бэкапа в указанном каталоге
declare @path varchar(max)=N'D:\Backup\DEK_backup_'+convert(varchar(max),getdate(),112) + N'.bak'
BACKUP DATABASE [<имя базы>] TO DISK = @path WITH NOFORMAT, NOINIT, NAME = N'<имя базы>-Полная База данных Резервное копирование', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
--ШАГ 2 - Проверка резервной копии
declare @backupSetId as int
declare @path varchar(max)=N'D:\Backup\DEK_backup_'+convert(varchar(max),getdate(),112) + N'.bak'
select @backupSetId = position from msdb..backupset where database_name=N'<имя базы>' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'<имя базы>' )
if @backupSetId is null begin raiserror(N'Ошибка верификации. Сведения о резервном копировании для базы данных "<имя базы>" не найдены.', 16, 1) end
RESTORE VERIFYONLY FROM DISK = @path WITH FILE = @backupSetId, NOUNLOAD, NOREWIND
GO
Добавляем в планировщик сам bat-файл