2010-01-20 7 views
1
sélective

J'utilise cette requête:restaurer une base de données

BACKUP DATABASE RentalEase 
TO DISK = 'C:\RentalEaseBackup\RentalEase.bak' 
WITH COPY_ONLY; 
GO 

Pour sauvegarder ma base de données. Quelqu'un a supprimé quelque chose alors maintenant je dois le restaurer à partir d'un moment précédent, mais je ne veux pas écraser de nouveaux changements (autres que les suppressions). Ce que je pensais pouvoir faire, je joins la sauvegarde à SQL Server comme une nouvelle base de données, puis j'effectue les requêtes nécessaires pour déplacer les quelques lignes supprimées. Cependant, il ne joindra pas le fichier RentalEase.bak car il indique qu'il ne s'agit pas d'un fichier de base de données primaire.

Comment joindre la sauvegarde de la base de données afin de pouvoir exécuter les requêtes SQL par rapport à celle-ci?

Répondre

2

Vous devez restaurer la DB, vous ne pouvez pas joindre un fichier de sauvegarde

RESTORE DATABASE TestDB 
    FROM DISK = 'c:\Northwind.bak' 
    WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf', 
    MOVE 'Northwind_log' TO 'c:\test\testdb.ldf' 

Full syntax here

0

créer une nouvelle base de données nommée RentalEase2, une restauration devrait ressembler à ceci

RESTORE DATABASE [RentalEase2] FROM DISK = N'C:\RentalEaseBackup\RentalEase.bak' 
WITH FILE = 1, NOUNLOAD, STATS = 10 
GO 
+0

ne va pas écraser la base de données existante? –

+0

alors créez une nouvelle base de données – SQLMenace

2

Restaurer la base de données à un nom de base de données différent, et vous pouvez faire ce que vous voulez entre les deux bases de données (bonne chance!)

Questions connexes