Измените логическое имя базы данных с SMO

Как я могу изменить логическое имя базы данных при восстановлении базы данных с SMO?

/Viktor

8
задан Viktor 20 February 2010 в 05:50
поделиться

2 ответа

Невозможно переименовать файлы логической базы данных с помощью SQL ВОССТАНОВИТЬ БАЗУ ДАННЫХ : это не предлагается. С помощью WITH MOVE

можно изменять только физические файлы. Обычно вы переименовываете логические файлы с помощью ALTER DATABASE в SQL.

Это подтверждается классом SMO RelocateFile .

5
ответ дан 5 December 2019 в 11:24
поделиться
//restore is the Restore object in SMO

restore.RelocateFiles.Add(new RelocateFile(SourceDataFile.Name, Path.Combine(destinationDirectory, destination.Database + ".mdf")));
restore.RelocateFiles.Add(new RelocateFile(SourceLogFile.Name, Path.Combine(destinationDirectory, destination.Database + "_log.ldf")));

restore.SqlRestore(destinationServer);

var destinationDatabase = destinationServer.Databases[destinationDatabaseName];

//renaming the logical files does the trick

destinationDatabase.FileGroups[0].Files[0].Rename(destinationDatabaseName);
destinationDatabase.LogFiles[0].Rename(destinationDatabaseName + "_log");
10
ответ дан 5 December 2019 в 11:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: