Код Рахула верен: восстановление в новые физические файлы и переименование логических файлов выполняется в два этапа:
Вызов RelocateFile
говорит: «сопоставьте это логическое имя файла с этим физическим файлом». Вам нужно использовать логические имена файлов исходной резервной копии, а НЕ новые, иначе вы, вероятно, получите исключения ".mdf cannot be overwritten
".
Для создания новых логических имен используйте вызовы Rename()
, как показано в коде Рахула.
Однако, если вы хотите изменить имя базы данных с помощью SMO:
var srvConn = new ServerConnection(serverName)
{
LoginSecure = false,
Login = dbUserName,
Password = dbUserPassword,
DatabaseName = "master",
};
var mainDb = new Database(srvConn, "old database name");
mainDb.Rename("new database name");
mainDb.Refresh();