2010-10-15 6 views
0

Я ищу простой скрипт, который я могу использовать для перезаписи одной базы данных с другой. У нас есть master db с главной схемой и данными, и каждый раз разработчик хочет сдуть его испорченный db с полной перезаписью от мастера. Я в настоящее время сделать это с SQL Server Studio и GUI управления, но я хочу что-то подобное тому, что мы используем при восстановлении из резервной копии (только без дублирующего шага файла):Восстановление базы данных из базы данных с использованием сценария

RESTORE DATABASE [SlaveDB] 
FROM DISK = N'E:\Backup\MasterDB.bak' 
WITH FILE = 1, 
MOVE N'SlaveDB_Data' TO N'E:\Data\SlaveDB_Data.mdf', 
MOVE N'SlaveDB_Log' TO N'E:\Log\SlaveDB_Log.ldf', 
NOUNLOAD, 
STATS = 10 
GO 

Что такое синтаксис для получения дб из другого db вместо резервного файла?

+4

В студии сервера, в каждой панели вы имеете на верхней кнопку "Script", который покажет вам sql выполняется в новом окне. –

+0

просто предложение, но с таким вопросом более вероятно, что некоторые из пользователей DBA, посещающие www.serverfault.com, смогут вам помочь намного лучше. – InSane

+0

Спасибо @remi bourgarel, я не знаю, почему я никогда не раньше использовал эту маленькую кнопку. Исходя из сценария, сгенерированного IDE, кажется, что SQL Server просто выполняет резервное копирование в файл резервной копии и затем восстанавливает этот файл в db, который перезаписывается. Ну, я буду ... – grenade

ответ

0

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

  1. Названия db при производстве и при тестировании одинаковы, предположим, что его имя - MyDb.

  2. удаление тестовой базы данных

  3. Выполнить скрипт


RESTORE FILELISTONLY 
FROM DISK = 'E:\WorkCopy\BackUp.bak' 

RESTORE DATABASE [MyDb] 
FROM DISK = 'E:\WorkCopy\BackUp.bak' 
WITH 
MOVE 'MyDbPrimary' TO 'D:\data\MyDb\WorkCopy.mdf', 
MOVE 'MyDbImp' TO 'D:\data\MyDb\WorkCopy_1.ndf', 
MOVE 'MyDbCut' TO 'D:\data\MyDb\WorkCopy_2.ndf', 
MOVE 'MyDbIX' TO 'D:\data\MyDb\WorkCopy_3.ndf', 
MOVE 'MyDbAUD' TO 'D:\data\MyDb\WorkCopy_4.ndf', 
MOVE 'MyDbLog' TO 'D:\data\MyDb\WorkCopy_5.ldf', 
move 'sysft_FTIndexCatalog' TO 'D:\data\MyDb\FTIndexCatalog' 


ALTER DATABASE MyDb 
Set RECOVERY SIMPLE 
Смежные вопросы