SQL SERVER – Restore Database Backup using SQL Script (T-SQL)
In this blog post we are going to learn how to restore database backup using T-SQL script. We have already database which we will use to take a backup first and right after that we will use it to restore to the server. Taking backup is an easy thing, but I have seen many times when a user tries to restore the database, it throws an error.
Step 1: Retrive the Logical file name of the database from backup.
|
1
2
3
|
RESTORE FILELISTONLYFROM DISK = 'D:BackUpYourBaackUpFile.bak'GO |
Step 2: Use the values in the LogicalName Column in following Step.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
----Make Database to single user ModeALTER DATABASE YourDBSET SINGLE_USER WITHROLLBACK IMMEDIATE----Restore DatabaseRESTORE DATABASE YourDBFROM DISK = 'D:BackUpYourBaackUpFile.bak'WITH MOVE 'YourMDFLogicalName' TO 'D:DataYourMDFFile.mdf',MOVE 'YourLDFLogicalName' TO 'D:DataYourLDFFile.ldf'/*If there is no error in statement before database will be in multiusermode.If error occurs please execute following command it will convertdatabase in multi user.*/ALTER DATABASE YourDB SET MULTI_USERGO |
如果是还原数据库本身的话,sql server 2014里面步骤1不需要,
然后步骤2里面的restore命令,只需要with replace,不需要指定move to
RESTORE cannot process database, because it is in use by this session
Msg 3102, Level 16, State 1, Line 8
RESTORE cannot process database '' because it is in use by this session. It is recommended that the master database be used when performing this operation.
Msg 3013, Level 16, State 1, Line 8
RESTORE DATABASE is terminating abnormally.
把打开的sql窗口里面的数据库,切换成master,就可以执行了