2011-08-17 4 views
3

A pris une copie d'une base de données de SQL Server Express sur un ordinateur portable en utilisant la commande BACKUP DATABASE, maintenant j'essaie de le restaurer sur un autre ordinateur en utilisant l'instruction T-SQL:SQL Server: forcer l'emplacement de sauvegarde/restauration

RESTORE DATABASE [OurDB] 
FROM DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part1.bak', 
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part2.bak', 
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part3.bak', 
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part4.bak', 
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part5.bak', 
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part6.bak', 
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part7.bak', 
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part8.bak', 
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part9.bak', 
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part10.bak' 
WITH REPLACE 
GO 

Mais quand il tente de restaurer je reçois l'erreur

Msg 5133, niveau 16, état 1, ligne 1
recherche d'annuaire pour le fichier « c: \ Program Files \ Microsoft SQL serveur \ MSSQL.1 \ MSSQL \ DATA \ AppConfig_Data.ndf "fai conduit avec l'erreur du système d'exploitation 3 (n'a pas réussi à récupérer le texte de cette erreur. Raison: 1815).

Et quelques autres, toutes les erreurs similaires. Le problème est qu'il semble que SQL Server tente de restaurer la base de données dans le répertoire C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\, le répertoire de données sur l'ordinateur source sur lequel la sauvegarde a été prise.

Mais sur le nouvel ordinateur, je veux restaurer le chemin de données SQL Server est C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA

Comment puis-je changer le chemin dans les fichiers-données pour l'obtenir pour restaurer à l'emplacement correct?

Répondre

2

Vous devez ajouter des informations supplémentaires à votre commande RESTORE pour définir où ces bits doivent aller - quelque chose comme:

RESTORE DATABASE [OurDB] 
FROM DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part1.bak', 
MOVE N'Your_Data' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\OurDB.mdf', 
MOVE N'Your_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\OurDB_Log.ldf' 
Questions connexes