1 2 3 4 5 6 7 8 9 10 |
rem "sqlbak.bat" set user=sa set passwd=asdfgh set db=sqlexpress osql -U%user% -P%passwd% -S127.0.0.1\%db% -isqlbak.sql pause |
user - 数据库管理用户
passwd - 用户口令
db - 数据库实例名
/*sqlbak.sql*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
--sqlbak.sql DECLARE @name varchar(50) DECLARE @datetime char(14) DECLARE @path varchar(255) DECLARE @bakfile varchar(255) set @name='mydb' set @path='r:\' set @datetime=CONVERT(varchar(100), GETDATE(), 23) set @bakfile=@path+@name+CONVERT(varchar(100), GETDATE(), 23)+'.bak' backup database @name to disk=@bakfile with name=@name go |
name - 数据库的名字
path - 备份的路径
/*sqlrestore.bat*/
1 2 3 4 5 6 7 8 9 10 11 |
rem "sqlrestore.bat" set user=sa set passwd=asdfgh set db=sqlexpress osql -U%user% -P%passwd% -S127.0.0.1\%db% -isqlrestore.sql pause |
1 2 3 4 5 6 7 8 9 |
--sqlrestore.sql DECLARE @path varchar(255) set @path='R:\mydb2015-03-12.bak' RESTORE DATABASE mydb FROM DISK=@path WITH FILE=1, NOUNLOAD, REPLACE, STATS = 10 GO |
关于详尽的sql备份和恢复说明,可以参阅MSDN:
https://msdn.microsoft.com/zh-cn/library/ms186865.aspx
上面的脚本只是用来进行日常使用的,比较简单。微软自己的说明页有很长的篇幅,估计不是专门学习SQL的同学,很难有耐心将所有的参数和说明都看一遍。没有那么多的时间和精力,只能追求能用就好。