Guest User

Untitled

a guest
Feb 8th, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. :: Name: sql_auto_bak.cmd
  2. :: Purpose: backup database for SQL Server via sqlcmd
  3. :: Author: ettingshausen
  4. :: Revision: 2018/1/24 - initial version
  5. ::
  6.  
  7. @ECHO OFF
  8. SETLOCAL ENABLEEXTENSIONS
  9. SET parent=%~dp0
  10. SET interactive=0
  11. SET sql_script="%parent%script.sql"
  12. SET time_wrapper=%TIME: =0%
  13. SET time_local=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%_%time_wrapper:~0,2%%time_wrapper:~3,2%%time_wrapper:~6,2%
  14. ECHO %COMSPEC% | FINDSTR /L %CMDCMDLINE% >NUL 2>&1
  15. IF %ERRORLEVEL% == 0 SET interactive=1
  16.  
  17.  
  18. SET target_path=D:\DATA\BACKUP
  19. SET database=PT_INS_HA_UPGRADE0112
  20. SET server="localhost"
  21. SET username="sa"
  22. SET password="1"
  23.  
  24.  
  25.  
  26. :: create folder if not exist
  27. if not EXIST %target_path% ( MD %target_path%)
  28.  
  29. :: generate sql
  30. ECHO declare @stdatetime NVARCHAR(30)='%time_local%' > %sql_script%
  31. ECHO declare @DATA_BASE NVARCHAR(30)=N'%database%' >> %sql_script%
  32. ECHO declare @BACK_NAME NVARCHAR(600)=@DATA_BASE+'_'+@stdatetime >> %sql_script%
  33. ECHO declare @BACK_PATH NVARCHAR(600)=N'%target_path%\\'+@BACK_NAME+'.bak' >> %sql_script%
  34. ECHO BACKUP DATABASE @DATA_BASE TO DISK = @BACK_PATH >> %sql_script%
  35. ECHO WITH RETAINDAYS = 30, NOFORMAT, NOINIT, NAME = @BACK_NAME, SKIP, REWIND, NOUNLOAD, STATS = 10; >> %sql_script%
  36. ECHO GO >> %sql_script%
  37.  
  38. :: execute script
  39. sqlcmd -S %server% -U %username% -P %password% -i %sql_script%
  40.  
  41. :: delete script
  42. DEL %sql_script%
  43.  
  44. IF "%interactive%"=="0" PAUSE
  45. EXIT /B %ERRORLEVEL%
Add Comment
Please, Sign In to add comment