using Microsoft.SqlServer.Management.Smo;
string backupFile="Backupfile";//.bak file
string dbName = "DBName";
string dbServerMachineName = "MachineName";
Microsoft.SqlServer.Management.Smo.Server server = new Microsoft.SqlServer.Management.Smo.Server(dbServerMachineName);
Database database = new Database(server, dbName);
//If Need
database.Create();
database.Refresh();
//Restoring
Restore restore = new Restore();
restore.NoRecovery = false;
restore.Action = RestoreActionType.Database;
BackupDeviceItem bdi = default(BackupDeviceItem);
bdi = new BackupDeviceItem(backupFile, DeviceType.File);
restore.Devices.Add(bdi);
restore.Database = dbName;
restore.ReplaceDatabase = true;
restore.PercentCompleteNotification = 10;
restore.SqlRestore(server);
database.Refresh();
database.SetOnline();
server.Refresh();
데이터베이스 속성을 새 이름으로 설정해야합니다. 또한 로그/데이터 파일 이름이 기존 로그 파일 이름과 다르다는 것을 확인해야합니다. 중복 될 수 있습니다. http://stackoverflow.com/questions/1627145/smo-restoring-to-a-different-db –