восстановление исходного файла 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
логические имена должны использоваться в следующем скрипте. Кроме того, обновите пути и имена, используемые
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'