2010-12-07 3 views
0

Так что, когда я пытаюсь этот код (одна строка за один раз):Ошибка при клонировании SQL Server DB

BACKUP DATABASE [test] TO DISK = N'C:\test\test.bak' WITH INIT , NOUNLOAD , NAME = N'Test backup', NOSKIP , STATS = 10, NOFORMAT 
RESTORE DATABASE [test2] FROM DISK = N'C:\test\test.bak' WITH FILE = 1, MOVE N'test_Data' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test2.MDF', MOVE N'test_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test2_log.LDF', NOUNLOAD, REPLACE, STATS = 10 

Первая линия работает, файл .bak создается и запрос успешен. Тогда я пытаюсь вторую строчку выше, и я получаю эту ошибку:

Msg 3234, Level 16, State 2, Line 1 
Logical file 'test_Data' is not part of database 'test2'. Use RESTORE FILELISTONLY to list the logical file names. 
Msg 3013, Level 16, State 1, Line 1 
RESTORE DATABASE is terminating abnormally. 

код, который я пытаюсь пришел из here.

Любая идея, что я делаю неправильно?

ответ

3

«Test_Data» скорее всего не является именем логического файла, который содержит данные в резервной копии базы данных. Используйте RESTORE FILELISTONLY, как предложено определить имя этого файла, или щелкните правой кнопкой мыши на базе данных, из которой была сделана резервная копия, и посмотрите на свойства - где вы можете просмотреть имена файлов, связанных с базой данных.

Если «Test_Data» является правильным логическим именем файла, то, скорее всего, у вас есть несколько резервных копий, хранящихся в одном .bak-файле. Попробуйте восстановить через SSMS, а не T-SQL, чтобы лучше понять, с чем вы имеете дело - вы всегда можете выполнить сценарий восстановления, а не запускать его, чтобы посмотреть, как это должно быть написано сценарием.

+0

Спасибо, сэр! – erikvold 2010-12-07 18:33:53