Wednesday 11 September 2013

Trouble restoring database using T-sql

Trouble restoring database using T-sql

backup database Clinical_Data_Extension to
disk='c:\Clinical_Data_Extension_full.bak'
restore filelistonly from disk='c:\Clinical_Data_Extension_full.bak'
restore database Clinical_Data from
disk='c:\Clinical_Data_Extension_full.bak'
with move 'Clinical_Data_Extension' to 'C:\Program Files\Microsoft SQL
Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Clinical_Data.mdf',
move 'Clinical_Data_Extension_log' to 'C:\Program Files\Microsoft SQL
Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Clinical_Data.ldf',
REPLACE
Error:
Msg 3234, Level 16, State 2, Line 3
Logical file 'Clinical_Data_Extension' is not part of database
'Clinical_Data'. Use RESTORE FILELISTONLY to list the logical file names.
Msg 3013, Level 16, State 1, Line 3
RESTORE DATABASE is terminating abnormally.
Yet for some reason the following identical code works fine:
backup database Clinical_Data to disk='c:\Clinical_Data_full.bak'
restore filelistonly from disk='c:\Clinical_Data_full.bak'
restore database Clinical_Data_Extension from
disk='c:\Clinical_Data_full.bak'
with move 'Clinical_Data' to 'C:\Program Files\Microsoft SQL
Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Clinical_Data_Extension.mdf',
move 'Clinical_Data_log' to 'C:\Program Files\Microsoft SQL
Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Clinical_Data_Extension.ldf',
REPLACE
Basically, what I am doing is creating database "Clinical_Data_Extension"
and doing work on it. Once I am done, I have a script for removing
"Clinical_Data", and then I use the script which I mentioned first to
restore "Clinical_Data" using data from "Clinical_Data_Extension"
essentially overwriting "Clinical_Data". However for some reason the first
script gives me an error and the second does not yet they are totally
identical. Why do you think this would happen?

No comments:

Post a Comment