se puede y es muy posible hacer lo que usted pidió,
pero hacer la copia de seguridad que uno mismo utilizando SMO no es muy difícil, pero la parte difícil es la gestión de la copia de seguridad y la restauración.
sería difícil poner todo el código aquí, pero no cabría. así que haré todo lo posible para poner las líneas que necesita.
SqlBackup.SqlBackup no devuelve ningún valor, es una función anulada. pero se necesita un parámetro que es "Servidor", intente con el siguiente código:
Server srvSql;
//Connect to Server using your authentication method and load the databases in srvSql
// THEN
Backup bkpDatabase = new Backup();
bkpDatabase.Action = BackupActionType.Database;
bkpDatabase.Incremental = true; // will take an incemental backup
bkpDatabase.Incremental = false; // will take a Full backup
bkpDatabase.Database = "your DB name";
BackupDeviceItem bDevice = new BackupDeviceItem("Backup.bak", DeviceType.File);
bkpDatabase.Devices.Add(bDevice);
bkpDatabase.PercentCompleteNotification = 1;// this for progress
bkpDatabase.SqlBackup(srvSql);
bkpDatabase.Devices.Clear();
Nunca lo he usado yo mismo, pero supongo que al escanear los documentos podría adjuntar un controlador de eventos a [Completar] (http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management .smo.backuprestorebase.complete.aspx) para ver si devuelve un código de error. Pero no estoy 100% seguro de que se llamará en el caso no asincrónico, ¡y debe haber una manera mejor! – Rup