2014-04-07 4 views
2

미리 정의 된 테이블을 사용하여 새 데이터베이스를 만들어야하는 시나리오가 있습니다. 이러한 구조는 .bak 파일에서 사용할 수 있습니다. T-SQL 쿼리를 사용하여이 .bak 파일을 사용하여 새 데이터베이스를 만들어야합니다.T-SQL을 사용하여 .bak 파일을 사용하여 새 데이터베이스 만들기

데이터베이스 생성 쿼리를 사용하여 새 데이터베이스를 만들려고했습니다. 이 백업과 같은 내가 새로 만든 데이터베이스에이 박 파일을 복원하려 할 때

CREATE DATABASE newDataBase 

, 그것은 던지고 오류는이 DB를 복원 할 수없는 다른 DB 유형입니다. 오류가 발생

RESTORE DATABASE newDatabase 
    FROM DISK = 'c:\SkeletonDataBase\Skeleton.bak'; 

이 메시지 3154, 수준 16, 상태 4

이다, 줄 1 백업 세트는 기존의 'newDatabase'데이터베이스가 아닌 다른 데이터베이스의 백업을 보유하고 있습니다. 메시지 3013, 수준 16, 상태 1, 줄 1 RESTORE DATABASE 비정상적으로 종료됩니다.

소스 데이터베이스 데이터베이스 및 파일 (mdf 및 ldf)에 영향을주지 않고 데이터베이스를 새 데이터베이스로 복원하려고합니다. 도와주세요.

T-SQL을 사용하여 .bak 파일을 사용하여 새 데이터베이스를 만드는 방법에 대한 해결책이 필요합니다. 모든 솔루션은 매우 유용합니다.

+0

던져진 예외는 무엇입니까? –

+0

질문을 편집했습니다. 오류가 포함되어 있습니다. – Chethan

답변

3

복원은 일반적으로 실수로 데이터베이스를 다른 데이터베이스로 덮어 쓰는 것을 방지합니다. RESTORE 문에 지정된 데이터베이스가 현재 서버에 이미 있고 지정된 데이터베이스 제품군 GUID가 백업 세트에 기록 된 데이터베이스 제품군 GUID와 다른 경우 데이터베이스는 복원되지 않습니다. 복원시 "대체"옵션을 사용하십시오. 또한 파일 위치가 다른 경우 이동 옵션을 참조하십시오. 더 많은 정보 here.

+0

처음에는 유망한 솔루션 인 것처럼 보였으 나 일부 오류가 발생했습니다. 'E : \ SourceDB.mdf'파일을 덮어 쓸 수 없습니다. 'SourceDB'데이터베이스에서 사용되고 있습니다. 메시지 3156, 수준 16, 상태 4, 줄 1 'xyz'파일을 'E : \ SourceDB.mdf'로 복원 할 수 없습니다. WITH MOVE를 사용하여 파일의 유효한 위치를 식별하십시오. 'E : \ SourceDB.ldf'파일을 덮어 쓸 수 없습니다. 'SourceDB'데이터베이스에서 사용되고 있습니다. 'xyz_log'파일을 'E : \ SourceDB.ldf'로 복원 할 수 없습니다. WITH MOVE를 사용하여 파일의 유효한 위치를 식별하십시오. – Chethan

+0

복원 (newDatabase)을 수행하는 데이터베이스를 오프라인으로 가져와야합니다. 다음과 같은 문을 사용할 수 있습니다. ALTER DATABASE [newDatabase] OFFLINE WITH ROLLBACK IMMEDIATE. 복원이 완료되면 데이터베이스를 다시 온라인 상태로 만들어야합니다. –

관련 문제