Restore SQL Server database and overwrite existing database
By: Greg Robidoux
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".
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:
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:
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".