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

来源:互联网 发布:标准数据公司 编辑:程序博客网 时间:2024/06/02 07:28

备份数据库.bat

@echo offset path=%path%;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binnecho 数据库备份开始osql.exe -S 127.0.0.1 -U sa -P 123456 -i sqlserverbackup.sql -o c:\backup\sqlserverbackup.outecho 数据库备份完成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),getdate(),108),':','')set @path='c:\backup\'set @bakfile=@path+''+@name+'_'+'bak_'+@datetime+'.BAK'backup database @name to disk=@bakfile with name=@namego

还原数据库.bat

@echo offecho 开始还原数据库net start "mssqlserver"osql -U sa -P 123456 -i c:\backup\sqlserverrestore.sql -o c:\backup\sqlserverrestore.outecho 还原数据库完成pause

sqlserverrestore.sql

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

declare @dumpfile varchar(50)declare @msg varchar(70)   select @dumpfile = 'c:\backup\DataSample_bak_20170718161443.BAK'   select @msg=convert(char(26),getdate(),9)   print @msg----同一个备份文件还原成不同名称数据库  RESTORE DATABASE DataSample1   FROM disk=@dumpfile   WITH RECOVERY,   MOVE 'DataSample' TO 'D:\MyData\DataSample1.mdf',    MOVE 'DataSample_Log' TO 'D:\MyData\DataSample1_Log.ldf'if (@@ERROR <> 0 )begin   select @msg=convert(char(26),getdate(),9)+'-----还原数据失败或出现异常'   print @msgendelsebegin   select @msg=convert(char(26),getdate(),9)+'-----数据库还原完毕'   print @msgend

原创粉丝点击