Last active
April 7, 2018 13:16
-
-
Save bmatthewshea/5e530e28ba0aa4699a93253657b9659a to your computer and use it in GitHub Desktop.
SQLExpress simple CMD backup
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
:: sqlcmd command mostly taken from https://stackoverflow.com/questions/880487/sql-server-command-line-backup-statement | |
@echo off | |
setlocal EnableExtensions EnableDelayedExpansion | |
set DATABASENAME=MyDatabase | |
set SERVERNAME=MYSERVER | |
set HOME=C:\Users\Administrator\Documents\Backup and Logs | |
call :dotimestamp | |
set BACKUPFILENAME=D:\SQLExpress-Backups\%DATABASENAME%-%TIMESTAMP%.bak | |
set LOGFILE=backup-sqlexpress-%DATABASENAME%.log | |
set LOG=%HOME%\%LOGFILE% | |
:: | |
call :dotimestamp | |
echo %TIMESTAMP% -- BACKUP DATABASE -- >> "%LOG%" | |
echo. >> "%LOG%" | |
call :dotimestamp | |
echo %TIMESTAMP% STARTING MSSQLEXPRESS Backup for Database: %DATABASENAME% >> "%LOG%" | |
echo. >> "%LOG%" | |
call :dotimestamp | |
echo %TIMESTAMP% EXECUTE: sqlcmd -E -S %SERVERNAME% -d master -Q "BACKUP DATABASE [%DATABASENAME%] TO DISK = N'%BACKUPFILENAME%' WITH INIT , NOUNLOAD , NAME = N'%DATABASENAME% backup', NOSKIP , STATS = 10, NOFORMAT" ^>^> "%LOG%" >> "%LOG%" | |
echo. >> "%LOG%" | |
sqlcmd -E -S %SERVERNAME% -d master -Q "BACKUP DATABASE [%DATABASENAME%] TO DISK = N'%BACKUPFILENAME%' WITH INIT , NOUNLOAD , NAME = N'%DATABASENAME% backup', NOSKIP , STATS = 10, NOFORMAT" >> "%LOG%" | |
call :dotimestamp | |
echo %TIMESTAMP% Backup Script Completed. >> "%LOG%" | |
:endrun | |
exit /b | |
:sleep | |
:: ~10 second delay | |
ping 127.0.0.1 -n 10 > nul | |
goto :eof | |
:dotimestamp | |
:: Example output: 2018-04-25_08.31.24 (YEAR-MONTH-DAY_HOURS.MINUTES.SECONDS) | |
set timestring=%TIME: =0% | |
for /f "tokens=1-3 delims=:." %%a in ("%timestring%") do set hours=%%a&set minutes=%%b&set seconds=%%c | |
set TIMESTAMP=%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%_%hours%.%minutes%.%seconds% | |
goto :eof |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment