восстановление исходного файла MDF из файла bak

У меня есть файл bak (который является файлом резервной базы данных для файла mdf SQL server express 2005), и я должен получить файл MDF, чтобы я мог работать над его таблицами, как я могу получить исходный файл MDF из этого файла bak? Я использую Visual Studio 2012, необходимо ли иметь Management studio? Я попытался восстановить этот файл bak в пустую базу данных в другой системе, содержащей Sql server express management studio 2008, но он говорит, что базы данных не совпадают, что происходит не так?

2 ответов


Если вы создали пустую базу данных, чтобы перезаписать ее резервной копией, вам нужно будет указать параметр WITH REPLACE.

кроме того, вам может потребоваться указать параметр MOVE, чтобы поместить файлы в правильные места.

вы должны быть в состоянии довольно легко найти эти параметры в GUI при выполнении восстановления, или в качестве альтернативы вы можете написать его, используя ссылку здесь:

как восстановить базу данных в новое место и имя (Transact-SQL)


имейте в виду, что восстановление файла резервной копии базы данных не даст исходные файлы MDF (и LDF). Единственный способ получить исходный файл MDF-скопировать его Вы можете выполнить T-SQL, предложенный steoleary в Visual Studio, см. подробнее здесь:как: запуск сценариев SQL в обозревателе решений. Это также можно сделать в среде SQL Server management Studio.

пустая база данных, которую вы создали, не очень помогает, если вы не хотите синхронизировать с ней резервную копию. Но для этого ты понадобится сторонний инструмент

сначала выполните следующие действия,чтобы узнать имена логических файлов в резервной копии. Этот пример для резервной копии с именем TestFull.бак, хранящийся в E:\Test

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

enter image description here

логические имена должны использоваться в следующем скрипте. Кроме того, обновите пути и имена, используемые

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'