Restoring SQL Server Database Command Line Error

Posted on

Question :

I have a restore database script in a SQL file, and I’m trying to restore a backup generated from one DB to a new DB (that exists). That SQL file is being executed by SQLCMD on the command line. The command window lets me know the restore finished successfully; however, the database is in a restoring state still, and cannot be accessed. Because of that, the rest of my batch process fails. How can I get the database out of the restoring state, and back into an online state so that I can run additional batch process scripts?

I’m using this to do it:

restore filelistonly
from disk = 'c:program filesmicrosoft sql servermssql10.mssqlservermssqlbackupolddb.bak'
GO

RESTORE DATABASE NewDB
FROM DISK = 'C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLBackupolddb.bak'
WITH NORECOVERY, REPLACE,
MOVE 'OldDB' TO 'C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATAnewdb.mdf',
MOVE 'OldDB_Log' TO 'C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATAnewdb.ldf'

Any ideas why my db is still in restoring state if it says it completed successfully?

Thanks.

Answer :

You used NORECOVERY which leaves the database ready to receive diff/log restores

You can remove it above, or simply run this

RESTORE DATABASE NewDB WITH RECOVERY

See MSDN RESTORE, look for “[ RECOVERY | NORECOVERY | STANDBY ]” header

Leave a Reply

Your email address will not be published. Required fields are marked *