Я же использую обычно в таких задачах следующий скрипт:
<code style="color: #f8f8f2;">DECLARE @pathName NVARCHAR(512) SET @pathName = 'D:Backupdb_backup_' + Convert(varchar(8), GETDATE(), 112) + '.bak' BACKUP DATABASE [MyDataBase] TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'db_backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10</code>
Этот скрипт создает бекап с именем файла db_backup_YYYYDDMM.bak гдеYYYYDDMM – это текущая дата. Дата в имени файла позволит нам создавать каждый день бекап в новом файле. Запустите и проверьте что бекап действительно создается такой какой вам и нужен. Этот скрипт сохраняем в какой-нибудь папке под именем schedule.sql, предположим c:sheduled tasks. В этой же папке создадим исполняемый файл backup.bat, следующего содержания:
<span style="color: #800000;"><code style="color: #f8f8f2;">sqlcmd -S SEVERNAME -U UserName -P Password -i schedule.sql 7z a -tzip D:Backup db_backup_%date%.zip -i! D:Backupdb_backup_*.bak del d:Backupdb_backup_*.bak</code></span>
Где меняем SERVERNAME – имя сервера, UserName – имя пользователя, Password – пароль пользователя, schedule.sql – имя сохраненного скрипта. Вторая и третья строка батника архивирует бекап в zip файл и удаляет сам файл бекапа. Для того чтобы работала архивация необходимо установить архиватор 7z и прописать полные пути до исполняемого файла 7z.exe либо положить 7z.exe и 7z.dll в ту же папку, где располагаются скрипты. Теперь можем запустить исполняемый файл backup.bat и проверить проработает ли он так как нужно. Последний шаг это записать schedule в задачи windows. Запускаем Task Scheduler из меню Пуск, либо набираем в командной строке taskschd.msc. В разных версиях Windows это выглядит по разному, да и информацию о том как сделать задачу можно прочитать в помощи Windows. Основное – это запускать задачу от имени пользователя с достаточными правами на используемые папки. При помощи таких действий можно так же запрограммировать и любые другие задачи. В скрипте schedule.sql можно перед бекапом вызвать какие-либо необходимые процедуры, может переиндексирование или сжатие базы данных.