Я хочу создать задание резервного копирования на сервере sql. И я хочу выполнить командный файл в работе. Мне просто интересно, какая часть выполнения командного файла из задания sql. Есть ли у вас какие-либо идеи?
Любая помощь будет оценена.
use MyDb
go
BACKUP DATABASE MyDb TO DISK = 'C:\BackUps\MyDb.bak' WITH differential
go
-- Call my batch file (which will zip MyDb.bak file)
Если вы делаете это как задание агента SQL Server (из SSMS), это значительно упрощает вызов пакетных файлов. Просто добавьте шаг типа "Operating System (CmdExec)
"и укажите его на свой .bat-файл.
Если вы используете помимо sql server 2008 Enterprise (или выше), тогда xp_cmdshell это способ сделать это, хотя вам нужно сначала включить его с помощью sp_configure.
Если вам посчастливилось работать с mssql 2008 Enterprise, тогда функция сжатия резервных копий это то, что вам следует использовать.
Вы можете сделать что-то более продвинутое, чем вызов файла static.bat. Вот несколько полезных примеров:
Пример сценария sql для архивирования и передачи файла резервной копии базы данных
Как сделать резервную копию базы данных SQL в формате .zip