SQL Server command line backup statement

前端 未结 6 545
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-04 10:41

Does any one know if there is a way to script out SQL Server backup in to a batch file, so that it could be executed from a command line?

6条回答
  •  借酒劲吻你
    2020-12-04 11:11

    Combine Remove Old Backup files with above script then this can perform backup by a scheduler, keep last 10 backup files

    echo off
    :: set folder to save backup files ex. BACKUPPATH=c:\backup
    set BACKUPPATH=<>
    
    :: set Sql Server location ex. set SERVERNAME=localhost\SQLEXPRESS
    set SERVERNAME=<>
    
    :: set Database name to backup
    set DATABASENAME=<>
    
    :: filename format Name-Date (eg MyDatabase-2009-5-19_1700.bak)
    For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
    For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)
    
    set DATESTAMP=%mydate%_%mytime%
    set BACKUPFILENAME=%BACKUPPATH%\%DATABASENAME%-%DATESTAMP%.bak
    echo.
    
    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"
    echo.
    
    :: In this case, we are choosing to keep the most recent 10 files
    :: Also, the files we are looking for have a 'bak' extension
    for /f "skip=10 delims=" %%F in ('dir %BACKUPPATH%\*.bak /s/b/o-d/a-d') do del "%%F"
    

提交回复
热议问题