How to restore SQL Server database through C# code

前端 未结 6 1660
我寻月下人不归
我寻月下人不归 2020-12-08 21:12

I try to restore the database like this:

SQL = @\"RESTORE DATABASE MyDataBase TO DISK=\'d:\\MyDATA.BAK\'\";
                Cmd = new SqlCommand(SQL, Conn);
         


        
6条回答
  •  粉色の甜心
    2020-12-08 22:06

    I prefer to use SMO to restore a backup:

    Microsoft.SqlServer.Management.Smo.Server smoServer = 
         new Server(new ServerConnection(server));
    
    Database db = smoServer.Databases['MyDataBase'];
    string dbPath = Path.Combine(db.PrimaryFilePath, 'MyDataBase.mdf');
    string logPath = Path.Combine(db.PrimaryFilePath, 'MyDataBase_Log.ldf');
    Restore restore = new Restore();
    BackupDeviceItem deviceItem = 
        new BackupDeviceItem('d:\MyDATA.BAK', DeviceType.File);
    restore.Devices.Add(deviceItem);
    restore.Database = backupDatabaseTo;
    restore.FileNumber = restoreFileNumber;
    restore.Action = RestoreActionType.Database;
    restore.ReplaceDatabase = true;
    restore.SqlRestore(smoServer);
    
    db = smoServer.Databases['MyDataBase'];
    db.SetOnline();
    smoServer.Refresh();
    db.Refresh();
    

    You'll need references to Microsoft.SqlServer.Smo, Microsoft.SqlServer.SmoExtended, and Microsoft.SqlServer.Management.Sdk.Sfc

提交回复
热议问题