2011-09-16 7 views
2

MDF 파일 (실제 인스턴스의 백업으로 생성 됨)에서 라이브 SQL Server 데이터베이스로 단일 레코드를 복원하는 것이 최선의 방법인지 궁금합니다.SQL Server 2008 MDF 파일에서 레코드를 복원하는 가장 빠른 방법

파일을 데이터베이스에 첨부하는 과정을 알고 완전히 복원하는 방법에 대해 알고 있지만 테이블 중 하나에서 단일 레코드를 선택하고이를 라이브 인스턴스의 동일한 테이블에 다시 삽입하는 방법은 무엇입니까? ?

필자는 select 문에서 결과 행을 기반으로 항상 처음부터 새 레코드를 만들 수 있지만 이러한 간단한 작업에 대해보다 스마트하고 깨끗한 접근 방법이 필요하다고 확신합니다.

미리 답변 해 주셔서 감사합니다.

건배.

답변

1

라이브 서버의 유연성에 따라 라이브 또는 다른 연결된 서버에서 백업 데이터베이스를 다른 이름으로 연결 한 다음 해당 테이블로 바로 들어가기를 원하는 레코드를 선택할 수 있습니다 라이브 데이터베이스에서.

실행 가능성은 전적으로 기본 키에 달려 있습니다. 자동 생성 ID 열인 경우,이를 선택하면 추가하려는 링크 된 레코드에 원하지 않는 결과를 줄 수있는 다른 기본 키가 생기므로 새 기본 키를 고려해야합니다. 쿼리의

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

originaldb.dbo.Persons은으로 선택하려는 원래의 테이블입니다.

backupdb.dbo.Persons는 복원 된 백업 테이블입니다.

전체 행을 선택하지 않았지만 그 요점은이 쿼리를 약간 수정해야합니다.

+0

감사합니다. 정확히 알고 싶었습니다. 다행스럽게도이 레코드는 매우 간단한 테이블 구조이므로 삽입시 자동 생성되는 동안이 레코드의 ID는 다른 레코드에서 참조되지 않습니다. 그러한 진술은 어떻게 생겼을까요? 이전 ID를 선택하지 않고 단순히 SQL Server에서 새 ID를 생성 한 다음 백업 테이블에서 다른 열을 삽입하는 것이 이상적입니다. 미리 감사드립니다! –

+1

@mikelc - 간단한 예를 포함하여 원래의 대답을 수정했습니다. – hermiod

2

MDF 파일의 레코드를 단순히 읽을 수는 없으므로 첨부하거나 데이터베이스에 복원해야합니다.

2

기본적으로 할 수 없습니다. 그러나 Red Gate에는 백업에서 데이터베이스를 마운트 할 수있는 가상 복원이라는 제품이 있습니다.

2

현재 또는 향후 계획 용입니까? 후자의 경우 데이터베이스 스냅 샷을 활용할 수 있습니다.