Возникла задача - делать ежедневные бекапы нескольких бд на SQL Express (который не имеет Agent Service для таких задач). Задача решилась путем создания sql файла
DECLARE @pathName NVARCHAR(512)
SET @pathName = 'c:\DB_BAK\db_backup_base1_' + Convert(varchar(8), GETDATE(), 112) + '.bak'
BACKUP DATABASE [atlantisline] TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'db_backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
SET @pathName = 'c:\DB_BAK\db_backup_base2_' + Convert(varchar(8), GETDATE(), 112) + '.bak'
BACKUP DATABASE [carnival] TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'db_backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
и запускающего его батника
sqlcmd -S HOST\SQLEXPRESS -i backup.sql
@Echo Off
Set _Date=%date%
If "%_Date%A" LSS "A" (Set _NumTok=1-3) Else (Set _NumTok=2-4)
:: Default Delimiter of TAB and Space are used
For /F "TOKENS=2*" %%A In ('REG QUERY "HKCU\Control Panel\International" /v iDate') Do Set _iDate=%%B
For /F "TOKENS=2*" %%A In ('REG QUERY "HKCU\Control Panel\International" /v sDate') Do Set _sDate=%%B
IF %_iDate%==0 For /F "TOKENS=%_NumTok% DELIMS=%_sDate% " %%B In ("%_Date%") Do Set _fdate=%%D%%B%%C
IF %_iDate%==1 For /F "TOKENS=%_NumTok% DELIMS=%_sDate% " %%B In ("%_Date%") Do Set _fdate=%%D%%C%%B
IF %_iDate%==2 For /F "TOKENS=%_NumTok% DELIMS=%_sDate% " %%B In ("%_Date%") Do Set _fdate=%%B%%C%%D
Set _Today=%_fdate:~4,2%-%_fdate:~6,2%-%_fdate:~0,4%
Echo On
"C:\Program Files\7-Zip\7z.exe" a -tzip c:\DB_BAK\db_backup_%_Today%.zip c:\DB_BAK\db_backup_*.bak
del c:\DB_BAK\db_backup_*.bak