针对SQL Server的window脚本-双击备份与还原

本文描述了一个工作场景中对SQLServer数据库频繁备份和还原的需求,介绍了备份和还原脚本的编写,包括备份文件命名规则、连接信息设置以及实际操作步骤。
摘要由CSDN通过智能技术生成

一、初衷

        在工作过程中需要多次备份账套,多次还原账套,每次需点击SQL Server登录、验证,定位到指定数据库 备份 - 输入备份名称等等一系列操作,很麻烦,我需要什么,我只要点一下备份,给我备份到这个位置就行!!!

二、前提

        备份脚本名称构成部分:BACKUP_数据库名.bat

        还原脚本名称构成部分: RESTORE_数据库名.bat

命名规范必须遵循,为何要如此命名?通俗易通!再加上 【数据库名】 是一个变量,提高扩展性,在脚本中会直接用到

三、代码实现 

以下脚本中 rem 是注释的意思,可以删掉

1、备份脚本 - 需更改

BACKUP_DIR为备份的公共路径,比如:D:\SQLBak

数据库CS01,一备份便会创建D:\SQLBak\CS01\CS01_20240202_145434.bak备份文件,在公共路径中文件夹不存在会被自动创建出来

后面的备份文件名采取【数据库名】_【年月日】_【时分秒】.bak 的格式

@echo off

rem 获取当前脚本的文件名(不带扩展名)
set SCRIPT_NAME=%~n0

for /f "tokens=2 delims=_" %%a in ("%SCRIPT_NAME%") do set DATABASE_NAME=%%a

rem 设置 SQL Server 连接信息
set SERVER_NAME=需更改

set BACKUP_DIR=需更改

rem 获取当前系统日期和时间,格式为年月日时分秒
for /f %%a in ('powershell Get-Date -Format "yyyyMMdd_HHmmss"') do (
    set "DATETIME=%%a"
)

rem 设置备份文件名
set BACKUP_PATH=%BACKUP_DIR%\%DATABASE_NAME%\%DATABASE_NAME%_%DATETIME%.bak

if not exist "%BACKUP_DIR%\%DATABASE_NAME%" mkdir "%BACKUP_DIR%\%DATABASE_NAME%"

rem 执行备份命令
sqlcmd -S %SERVER_NAME% -d %DATABASE_NAME% -U 需更改 -P 需更改 -Q "BACKUP DATABASE [%DATABASE_NAME%] TO DISK='%BACKUP_PATH%' WITH INIT, FORMAT"

pause

2、还原脚本 - 需更改

@echo off

rem 获取当前脚本的文件名(不带扩展名)
set SCRIPT_NAME=%~n0

for /f "tokens=2 delims=_" %%a in ("%SCRIPT_NAME%") do set DATABASE_NAME=%%a

rem 设置 SQL Server 连接信息
set SERVER_NAME=需更改

set /p FILE_NAME=Enter the file name: 

rem set BACKUP_PATH=D:\SQLBak\%DATABASE_NAME%\%FILE_NAME%.bak
set BACKUP_PATH=需更改公共路径\%DATABASE_NAME%\%FILE_NAME%.bak

sqlcmd -S %SERVER_NAME% -d master -U 需更改 -P 需更改 -Q "RESTORE DATABASE [%DATABASE_NAME%] FROM DISK='%BACKUP_PATH%' WITH REPLACE"

pause

四、效果展示

1、备份脚本效果展示

2、还原脚本效果展示

 回车

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值