2013-07-29 9 views
8

bak 파일 (SQL Server Express 2005 mdf 파일의 백업 데이터베이스 파일)이 있는데 테이블에서 작업 할 수 있도록 MDF 파일을 가져와야합니다. 이 bak 파일에서 원본 MDF 파일을 가져올 수 있습니까? Visual Studio 2012를 사용하고 있습니다. 관리 스튜디오가 있어야합니까? SQL Server Express 관리 스튜디오 2008이 포함 된 다른 시스템의 빈 데이터베이스에이 bak 파일을 복원하려고 시도했지만 데이터베이스가 일치하지 않는다고 잘못되었습니다.bak 파일에서 원래 MDF 파일 복원

답변

5

빈 데이터베이스를 작성한 경우이를 백업으로 겹쳐 쓰려면 WITH REPLACE 매개 변수를 지정해야합니다.

또한 올바른 위치에 파일을 넣으려면 MOVE 매개 변수를 지정해야 할 수도 있습니다.

여기 참조를 사용하여 스크립트 그것을 당신은 아주 쉽게 복원을하고있는 GUI에서 이러한 옵션을 찾을 수있을 것입니다, 또는 선택적으로 수행 할 수 있습니다

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

+0

감사하지만 어떻게 코드를 통해이 작업을 수행 할 수 있습니까? 귀하의 링크에 제공된 코드 샘플을 어디에서 실행해야합니까? SQLCommand 개체를 만들고 스크립트를 실행해야합니까? –

+0

그렇게 할 수 있습니다. 또는 SQL 관리 스튜디오 – steoleary

11

가를 복원하는 것을 염두에 두십시오 데이터베이스 백업 파일은 원본 MDF (및 LDF) 파일을 제공하지 않습니다. 원본 MDF 파일을 가져 오는 유일한 방법은 복사하는 것입니다. Visual Studio에서 권장하는 T-SQL을 실행할 수 있습니다. 자세한 내용은 How to: Run SQL Scripts in Solution Explorer을 참조하십시오. SQL Server Management Studio에서도이 작업을 수행 할 수 있습니다.

작성한 빈 데이터베이스는 백업을 동기화하지 않는 한 많은 도움이되지 않습니다. 그러나 타사 도구가 필요할 경우

먼저 다음을 실행하여 백업에서 논리 파일 이름을 찾습니다. 이 예는 E에 저장 TestFull.bak라는 이름의 백업입니다 : \ 테스트

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

에 명령을 실행할 수 있습니다. Milena, MDF 파일은 Management Studio를 사용하고 있습니다. 실제로 코드를 통해이 작업을 수행해야합니다. 즉, 사용자가 다음 작업을 수행 할 수 있어야합니다. bak 파일에서 데이터를 읽으므로 코드를 통해 bak 파일에서 MDF를 복원 한 다음 MDF에 연결하고 데이터베이스를 읽을 수 있어야합니다. 어떻게하면 C# 코드에서이 작업을 수행 할 수 있습니까? 샘플이 있습니까? –

+0

@Ali_dotNet C 언어로 도울 수 없습니다. ( –

+0

다른 언어를 사용합니까? –

관련 문제