2013-07-29 4 views
8

J'ai un fichier bak (qui est un fichier de base de données de sauvegarde pour un fichier SQL Server 2005 Express mdf) et je devrais obtenir le fichier MDF afin que je puisse travailler sur ses tables, comment puis-je obtenir le fichier MDF d'origine de ce fichier bak? J'utilise Visual Studio 2012, est-il nécessaire d'avoir un studio de gestion? J'ai essayé de restaurer ce fichier bak à une base de données vide dans un autre système contenant SQL Server Express Management Studio 2008, mais il dit que les bases de données ne correspondent pas, ce qui ne va pas?restaurer le fichier MDF original à partir du fichier bak

Répondre

5

Si vous avez créé une base de données vide, pour l'écraser avec la sauvegarde, vous devrez spécifier le paramètre WITH REPLACE.

De même, vous devrez peut-être spécifier le paramètre MOVE pour placer les fichiers dans les emplacements corrects.

Vous devriez pouvoir trouver assez facilement ces options dans l'interface graphique lorsque vous effectuez la restauration, ou bien vous pouvez écrire le script, il en utilisant la référence ici:

How to: Restore a Database to a New Location and Name (Transact-SQL)

+0

merci mais comment puis-je effectuer cette action via le code? Où dois-je exécuter l'exemple de code fourni dans votre lien? Je devrais créer un objet SQLCommand et exécuter ces scripts? –

+0

Vous pouvez le faire, ou vous pouvez simplement exécuter les commandes dans le studio de gestion SQL – steoleary

11

Gardez à l'esprit que la restauration d'un fichier de sauvegarde de base de données ne donnera pas les fichiers MDF (et LDF) d'origine. La seule façon d'obtenir le fichier MDF original est de le copier Vous pouvez exécuter le T-SQL suggéré par steoleary dans Visual Studio, voir plus ici: How to: Run SQL Scripts in Solution Explorer. Vous pouvez également le faire dans SQL Server Management Studio.

La base de données vide que vous avez créée n'aide pas beaucoup, sauf si vous voulez synchroniser la sauvegarde avec elle. Mais pour cela vous auriez besoin d'un outil tiers

D'abord, exécutez les opérations suivantes pour trouver les noms de fichiers logiques dans votre sauvegarde. Cet exemple est pour la sauvegarde du nom TestFull.bak stocké dans E: \ Test

RESTORE FILELISTONLY 
FROM DISK = 'E:\Test\TestFull.bak' 
GO 

enter image description here

Les noms logiques doivent être utilisés dans le script suivant. En outre, mettre à jour les chemins et les noms utilisés

RESTORE DATABASE YourDB 
FROM DISK = 'E:\Test\TestFull.bak' 
WITH MOVE 'test1' TO 'E:\test\TestMDFFile.mdf', 
MOVE 'test1_log' TO 'E:\test\TestLDFFile.ldf' 
+0

Merci Milena, j'ai le fichier MDF en utilisant Management Studio, mais en fait je devrais effectuer cette opération via le code, à savoir mes utilisateurs devraient être en mesure de lire les données du fichier bak, donc je devrais être capable de restaurer MDF à partir du fichier bak via le code, puis se connecter au MDF et lire la base de données, comment puis-je effectuer cette opération dans mon code C#? Y a-t-il un échantillon? –

+0

@Ali_dotNet Je ne peux pas aider avec C# :( –

+0

ok, utilisez-vous une autre langue? –

Questions connexes