我正在使用smo编码,但什么都没发生。
Restore res = new Restore();
res.Devices.AddDevice(@"D:\Shivam.bak", DeviceType.File);
BackupDeviceItem bkpDevice = new BackupDeviceItem(@"\\hqsqlbkup1\VN\Shivam.bak", DeviceType.File);
res.Database = "ShivamDb";
res.Action = RestoreActionType.Database;
res.RelocateFiles.Add(new RelocateFile("Shivam", @"+ System.Windows.Forms.Application.StartupPath +\\Shivam.mdf"));
res.RelocateFiles.Add(new RelocateFile("Shivam_log", @"System.Windows.Forms.Application.StartupPath + \\Shivam_log.ldf"));
res.ReplaceDatabase = true;
MessageBox.Show("Restore complited");
答案 0 :(得分:2)
好的,我看到你创建了一个恢复,初始化很多 - 但你在哪里告诉它执行那个?调用SqlRestore实际执行还原的位置在哪里?
不,如果不调用相应的方法,初始化Restore类(SMO)将不会神奇地执行Operation。
答案 1 :(得分:0)
你必须调用Restore类的SqlRestore或SqlRestoreAsyc方法,才能恢复你的数据库!
在以下链接中,您可以找到有关备份和还原操作的良好示例:http://www.mssqltips.com/sqlservertip/1849/backup-and-restore-sql-server-databases-programmatically-with-smo/