2013-07-29 2 views
8

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

ответ

5

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

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

Вы должны быть в состоянии довольно легко найти эти параметры в графическом интерфейсе во время восстановления, или в качестве альтернативы вы можете сценарий его с помощью ссылки здесь:

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

+0

спасибо, но как я могу выполнить это действие с помощью кода? где я должен запустить образец кода, указанный в вашей ссылке? Я должен создать объект SQLCommand и запустить эти сценарии? –

+0

Вы можете это сделать, или вы можете просто запустить команды в студии управления SQL – steoleary

11

Имейте в виду, что восстановление файл резервной копии базы данных не даст исходных файлов MDF (и LDF). Единственный способ получить исходный файл MDF - скопировать его Вы можете выполнить T-SQL, предложенный steoleary в Visual Studio, см. Здесь: How to: Run SQL Scripts in Solution Explorer. Вы также можете это сделать в SQL Server Management Studio.

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

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

спасибо Милена, у меня есть файл MDF с помощью Management Studio, но на самом деле я должен выполнить эту операцию с помощью кода, то есть мои пользователи должны иметь возможность читать данные из файла bak, поэтому я должен иметь возможность восстановить MDF из файла bak через код, а затем подключиться к MDF и читать базу данных, как я могу выполнить эту операцию в своем коде C#? есть ли образец? –

+0

@Ali_dotNet Я не могу помочь с C# :( –

+0

ok, вы используете другой язык? –

Смежные вопросы