Самый быстрый способ восстановить запись из файла MDF SQL Server 2008 - PullRequest
2 голосов
/ 17 сентября 2011

Мне было интересно, как лучше всего восстановить одну запись из файла MDF (созданного в качестве резервной копии в действующем экземпляре) в действующей базе данных SQL Server.

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

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

Большое спасибо заранее, жду ваших ответов.

Приветствие.

Ответы [ 4 ]

2 голосов
/ 17 сентября 2011

Собственно, вы не можете. Однако в Red Gate есть продукт Virtual Restore, позволяющий подключать базу данных из резервной копии.

2 голосов
/ 17 сентября 2011

Это для сейчас или для будущего планирования?Если последнее, то вы можете использовать снимки базы данных.

2 голосов
/ 17 сентября 2011

Вы не можете просто прочитать запись из файла MDF, вам нужно прикрепить ее или восстановить в базе данных.

1 голос
/ 17 сентября 2011

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

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

Пример запроса

insert into originaldb.dbo.Persons 
select * from backupdb.dbo.Persons where PersonId = '654G'

originaldb.dbo.Persons - это исходная таблица, в которую вы хотите выбрать.

backupdb.dbo.Persons - это восстановленная таблица резервных копий.

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

...