3

我使用这个 SMO 来恢复备份:

        Server myServer = new Server(@"PC-1\Instance1");
        Restore restoreDB = new Restore();
        restoreDB.Database = "Sample";
        restoreDB.Action = RestoreActionType.Database;
        restoreDB.Devices.AddDevice(@"D:\Sample.bak", DeviceType.File);
        restoreDB.ReplaceDatabase = true;
        restoreDB.NoRecovery = true;
        restoreDB.SqlRestore(myServer);

但是当我打开 SSMS 时,恢复需要很长时间

在此处输入图像描述

我用它来备份数据库并能够备份数据库

            Server myServer = new Server(@"PC-1\Instance1");
            Backup bkpDBFull = new Backup();
            bkpDBFull.Action = BackupActionType.Database;
            bkpDBFull.Database = "Sample";
            bkpDBFull.Devices.AddDevice(@"D:\Sample.bak", DeviceType.File);
            bkpDBFull.BackupSetName = "Sample";
            bkpDBFull.BackupSetDescription = "Sample";
            bkpDBFull.ExpirationDate = DateTime.Today.AddDays(5);
            bkpDBFull.Initialize = false;
            bkpDBFull.SqlBackup(myServer);
4

1 回答 1

1

您的代码中有以下行:

restoreDB.NoRecovery = true;

因此,数据库将永远显示为在 SSMS 中恢复,直到您运行

RESTORE DATABASE [sample] WITH RECOVERY

或者它的 SMO 等价物,我不确定那会是什么。

于 2013-11-07T09:25:01.000 回答