Restore SQL Server database and overwrite existing database



By:

Overview

The RESTORE ... WITH REPLACE option allows you to overwrite an existing database when doing a restore.  In some cases when you try to do a restore you may get an error that says "The tail of the log for the database .. has not been backed up".

Explanation

The RESTORE ... WITH REPLACE allows you to write over an existing database when doing a restore without first backing up the tail of the transaction log.  The WITH REPLACE basically tells SQL Server to just throw out any active contents in the transaction log and move forward with the restore.

If you try to restore using T-SQL commands you will get this error message:

Msg 3159, Level 16, State 1, Line 1
The tail of the log for the database "AdventureWorks" has not been backed up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the RESTORE statement to just overwrite the contents of the log.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

If you try to restore using SQL Server Management Studio you will see this error message:


T-SQL

Restore full backup using WITH REPLACE
The command below will restore the database and disregard any active data in the current transaction log.

RESTORE DATABASE AdventureWorks FROM DISK = 'C:\AdventureWorks.BAK'
WITH REPLACE
GO

SQL Server Management Studio

To restore using SSMS do the following, on the options page for the restore select "Overwrite the existing database".


Last Update: 3/17/2009






Comments For This Article




Monday, January 27, 2020 - 9:05:41 AM - DBA Back To Top

note: you should always tale a backup of your current database before doing a restore.


Wednesday, August 08, 2018 - 4:27:08 AM - Srinivas Back To Top

This tip really worked for me.thank you


Wednesday, July 18, 2018 - 2:12:26 AM - Edvard Korsbęk Back To Top

 Thanks!

Allways done so, but never understood why before reading this.

 

Best regards from Denmark

 

Edvard Korsbęk

 


Tuesday, November 01, 2016 - 4:05:12 PM - Mary Young Back To Top

My database has encrypted columns. 

I need some help in figuring out how to backup one database (FRDTest) and restore it into an existing database with a different name (FRDUserTest).  We’ve been able to successfully create a NEW database by restoring the backup, but cannot restore into an existing database .  

I get error 3154: The backup set holds a backup of a database other than the existing 'FRDUserTest'.  And, yes, I DO select "WITH REPLACE".

 

 



download


get free sql tips
agree to terms


Learn more about SQL Server tools