工作中经常会对数据库进行备份,还原等操作。以帮助开发定位问题,当出现异常情况时,通过备份的数据库,我们可以还原数据库进行问题排查。但不同版本之间的还原经常会报错,这也是令人非常头痛的问题,所以将自己工作用于还原的脚本记录下来以供后续参考...
--查询要还原数据库名和日志名
RESTORE FILELISTONLY FROM disk='备份数据库路径+文件名.bak';
--查询得到新数据库和新数据库日志路径
use 新数据名;
select filename,groupid from dbo.sysfiles;
--设置单用户访问
ALTER DATABASE 新数据库名 SET SINGLE_USER with ROLLBACK IMMEDIATE;
use master
--将备份数据库还原到新数据库上
RESTORE DATABASE 新数据名 FROM disk='备份数据库路径+文件名.bak' WITH REPLACE
,MOVE '备份数据库名' TO '新数据库路径'
,MOVE '备份据库日志名' TO '新数据库日志路径';
--修改新数据库的逻辑名称
Alter DataBASE 新数据库名 MODIFY FILE(NAME='备份数据库名',NEWNAME='新数据库名');
Alter DataBASE 新数据库名 MODIFY FILE(NAME='备份数据库日志名',NEWNAME='新数据库日志名');