1、建三个有定时备份的功能的[作业] BackUpDay,BackUpWeek,BackUpMonth
2、使用.net选择触发这三个作业
              if (rblSBackUp.SelectedValue == "Day")
            {
               //省略其余代码
              string sql=" exec   msdb.dbo.sp_start_job   'BackUpDay'"
              //执行语句
            }
            if (rblSBackUp.SelectedValue == "Week")
            { 
             string sql=" exec   msdb.dbo.sp_start_job   'BackUpWeek'"
             //执行语句            }
            if (rblSBackUp.SelectedValue == "Month")
            { 
             string sql=" exec   msdb.dbo.sp_start_job   'BackUpMonth'"
             //执行语句
            }
以上只是实现的思路不知道又没有不妥的地方:如能不能实现?作业会不会冲突?又没有更好的方法?

解决方案 »

  1.   

    既然是作業,就沒必要在.net中調用了,SQL Server自己能搞定,別擔心
      

  2.   

    我沒試過,推斷你的想法從技術上來說應該是可行的,衝突應該不會。你可以在.net直接執行SQL腳本來進行備份。
      

  3.   

    谢谢楼上的。
    使用.net手动备份的功能已经实现了。客户要求有 [定时备份]的功能。并且可以在后台管理...
      

  4.   

    楼主可以把作业放到sql server里定时执行,没必要在.NET里写SQL语句再去执行至于在后台管理备份文件,你可以在.net里写方法遍历你存放备份文件的目录,这样就可以了
      

  5.   

    用SQLDMOpublic bool ExecBackup()
            {
                SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
                SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
                try
                {
                    oSQLServer.LoginSecure = false;
                    oSQLServer.Connect(_Server,_Uid, _Pwd);
                    oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
                    oBackup.Database = _Database;
                    oBackup.Files = @_BackupPath;
                    oBackup.BackupSetName = _Database;
                    oBackup.BackupSetDescription = "數據庫備份";
                    oBackup.Initialize = true;
                    oBackup.SQLBackup(oSQLServer);
                    return true;
                }
                catch(Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    oSQLServer.DisConnect();
                }
            }
      

  6.   

    晕,你在数据库里建几个job不就可以了吗?
      

  7.   

    楼主可以把作业放到sql server里定时执行,没必要在.NET里写SQL语句再去执行 
    ----------------------------------------------------------------------------
    现在需要一个开关:控制 数据的自动备份 如:你可以使用定时备份,也可以不使用。你可以选择 周备份或者月备份。这都需要在后台控制阿。
      

  8.   

    好像低点的版本Sql没有定时执行类似的功能 .我现在有个定时执行的,写个线程,专门循环运行 .
    不知有无更好办法呢?