加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

批处理(bat)实现SQLServer数据库备份与还原

发布时间:2020-12-12 13:43:08 所属栏目:MsSql教程 来源:网络整理
导读:备份数据库.bat @echo offset path=%path%;C:Program Files (x86)Microsoft SQL Server80ToolsBinnecho 数据库备份开始osql.exe -S 127.0.0.1 -U sa -P 123456 -i sqlserverbackup.sql -o c:backupsqlserverbackup.outecho 数据库备份完成pause sqlse

备份数据库.bat

@echo off
set path=%path%;C:Program Files (x86)Microsoft SQL Server80ToolsBinn
echo 数据库备份开始
osql.exe -S 127.0.0.1 -U sa -P 123456 -i sqlserverbackup.sql -o c:backupsqlserverbackup.out
echo 数据库备份完成
pause

sqlserverbackup.sql

DECLARE @name varchar(50)
DECLARE @datetime char(14)
DECLARE @path varchar(255)
DECLARE @bakfile varchar(255)
set @name='DataSample'
set @datetime=CONVERT(char(8),getdate(),112) + REPLACE(CONVERT(char(8),108),':','')
set @path='c:backup'
set @bakfile=@path+''+@name+'_'+'bak_'+@datetime+'.BAK'
backup database @name to disk=@bakfile with name=@name
go

还原数据库.bat

@echo off
echo 开始还原数据库
net start "mssqlserver"
osql -U sa -P 123456 -i c:backupsqlserverrestore.sql -o c:backupsqlserverrestore.out
echo 还原数据库完成
pause

sqlserverrestore.sql

declare @dumpfile varchar(50)
declare @msg varchar(70)
   select @dumpfile = 'c:backupDataSample_bak_20170718145556.BAK'
   select @msg=convert(char(26),9)
   print @msg
 
restore DATABASE DataSample from disk=@dumpfile
if (@@ERROR <> 0 )
begin
   select @msg=convert(char(26),9)+'-----还原数据失败或出现异常'
   print @msg
end
else
begin
   select @msg=convert(char(26),9)+'-----数据库还原完毕'
   print @msg
end

declare @dumpfile varchar(50)
declare @msg varchar(70)
   select @dumpfile = 'c:backupDataSample_bak_20170718161443.BAK'
   select @msg=convert(char(26),9)
   print @msg

----同一个备份文件还原成不同名称数据库  
RESTORE DATABASE DataSample1
   FROM disk=@dumpfile
   WITH RECOVERY,MOVE 'DataSample' TO 'D:MyDataDataSample1.mdf',MOVE 'DataSample_Log' TO 'D:MyDataDataSample1_Log.ldf'

if (@@ERROR <> 0 )
begin
   select @msg=convert(char(26),9)+'-----数据库还原完毕'
   print @msg
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读