2010-04-27 4 views
4

내 프로덕션 db의 .bak에서 복제 된 db를 만드는 작업을 자동화해야합니다. GUI를 통해 작업을 충분히 해왔지만 명령 줄에서 실행하면 다양한 스위치, 특히 파일 이름과 소유권이 올바르게 복제되었는지 혼란스러워집니다..bak를 새 db로 복원하는 TSQL 구문

이를 수행하는 RESTORE 용 TSQL 구문을 찾고 있습니다.

답변

10

는 SQL Server 2005 또는 2008을 사용하고, 가장 간단한 방법은 데이터베이스 복원 대화의 상단에있는 "스크립트"버튼을 사용하는 것입니다 SQL Server Management Studio. 이렇게하면 대화 상자에 입력 한 방식으로 구성된 모든 옵션/설정으로 T-SQL 스크립트가 자동으로 만들어집니다.

2

은 이쪽을 봐 :

이 예제는 새 데이터베이스 라는 이름의 MyAdvWorks를 만듭니다 좋은 예제가 How to: Restore a Database to a New Location and Name (Transact-SQL)을. MyAdvWorks는 AdventureWorks_Data 및 AdventureWorks_Log의 두 파일을 포함하는 기존 AdventureWorks 데이터베이스의 복사본입니다. 이 데이터베이스는 단순 복구 모델 을 사용합니다. AdventureWorks 데이터베이스가 이미 이라는 서버 인스턴스에 있으므로 백업의 파일을 의 새 위치로 복원해야합니다. RESTORE FILELISTONLY 문은 파일의 수와 이름을 복원 할 때 을 확인하는 데 사용됩니다. 데이터베이스 백업은 백업 장치에 첫 번째로 설정된 백업입니다.

USE master 
GO 
-- First determine the number and names of the files in the backup. 
-- AdventureWorks_Backup is the name of the backup device. 
RESTORE FILELISTONLY 
    FROM AdventureWorks_Backup 
-- Restore the files for MyAdvWorks. 
RESTORE DATABASE MyAdvWorks 
    FROM AdventureWorks_Backup 
    WITH RECOVERY, 
    MOVE 'AdventureWorks_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf', 
    MOVE 'AdventureWorks_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf' 
GO 

이것은 또한 도움이 될 수 있습니다 : 당신을 가정 Copying Databases with Backup and Restore